Подтвердить что ты не робот

Как включить консольный вывод в тестах Android Unit?

Есть ли способ включить ведение журнала теста на выходе консоли?

Я знаю, что мы можем посмотреть результаты тестов, сгенерированные в файле HTML, и проверить там стандартный вывод, но я считаю это немного неудобным.

Я знаю, что есть способ сделать это со стандартным java-плагином:

test {
    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
    }
}

Но использование его в Android-проекте вызывает ошибку:

Could not find method test()

Применение java-плагина неприемлемо, конечно, поскольку оно несовместимо с плагинами Android.

4b9b3361

Ответ 1

android {

...

  testOptions {
        unitTests.all {
        // All the usual Gradle options.
            testLogging {
                events "passed", "skipped", "failed", "standardOut", "standardError"
                outputs.upToDateWhen {false}
                showStandardStreams = true
            }
        }
    } 
}

В моем случае я выполнил этот и добавил параметр testLogging, как указано выше. Это должно распечатать журнал для модульных тестов, написанных в папке src/test, но не src/androidTest. В момент ответа я использовал предварительный просмотр Android Studio 2.0 и gradle 2.8. Команды были ./gradlew test и ./gradlew test --continue, в которых выполнялся файл iTerm 2.

Ответ 3

Еще более красивое решение, чем @ninjahoahong (спасибо Tricky Android blog).

Просто добавьте следующий код к вашему уровню проекта build.gradle to allprojects 'body:

allprojects {
    // ...
    tasks.matching {it instanceof Test}.all {
        testLogging.events = ["failed", "passed", "skipped"]
    }
}