Я хотел бы видеть результаты тестирования (system.out / err, протоколировать сообщения от тестируемых компонентов), поскольку они запускаются в той же консоли, которую я запускаю:
gradle test
И не ждите, пока не будут выполнены тесты, чтобы посмотреть отчеты о тестах (которые генерируются только после завершения тестов, поэтому я не могу ничего «хвост -f» во время выполнения тестов)
test
замыкании.-i
добавит кучу ненужной информации на терминал.grep
чтобы отфильтровать тысячи нежелательных строк. См. Stackoverflow.com/questions/3963708/…Вот моя модная версия:
источник
|
из-за того,startItem
что запуск задачи через Android Studio 2.2.3 распознал их как ошибки в сообщениях, и это было неприятно при успешных сборках.Вы можете добавить Groovy-замыкание в свой файл build.gradle, который делает запись для вас:
На вашей консоли это выглядит так:
Начиная с версии 1.1 Gradle поддерживает гораздо больше опций для записи результатов тестирования . Имея эти опции под рукой, вы можете получить аналогичный результат в следующей конфигурации:
источник
Как ответил Стефанглаз :
добавление следующего кода в ваш
build.gradle
(начиная с версии 1.1) отлично работает для вывода на пройденных , пропущенных и неудачных тестах.Что я хочу сказать дополнительно (я обнаружил, что это проблема для начинающих), так это то, что
gradle test
команда выполняет тест только один раз за изменение .Поэтому, если вы запускаете его во второй раз, результаты теста не будут отображаться . Вы также можете увидеть это в выводе здания: gradle говорит UP-TO-DATE на испытаниях. Так что не выполняется n-й раз.
Умный градл!
Если вы хотите принудительно запустить тестовые случаи, используйте
gradle cleanTest test
.Это немного не по теме, но я надеюсь, что это поможет некоторым новичкам.
редактировать
Как sparc_spread указано в комментариях :
Если вы хотите, чтобы gradle всегда запускал новые тесты (что не всегда является хорошей идеей), вы можете добавить
outputs.upToDateWhen {false}
кtestLogging { [...] }
. Продолжить чтение здесь .Мир.
источник
gradle cleanTest test
каждый раз (начиная с версии 1.12). Добавьтеoutputs.upToDateWhen {false}
к этому,testLogging {...}
и это должно помочь. Это заставит Gradle запускать тесты каждый раз. Я нашел это на форумах Gradle, опубликованных самим Доктером . Надеюсь это поможет.exceptionFormat "full"
получить подробную информацию о том, что не удалось, полезно, когда вы используете AssertJ или подобную библиотеку.cleanTest
тебя можно использоватьtest --rerun-tasks
--rerun-tasks
, что все ваши задачи будут выполняться повторно, а не только задачи для тестов.cleanTest test
на последней Android Studio и Gradle 3.3 не работает на моей стороне, но--rerun-tasks
сделал свое дело. Не знаю почему. Но чтение этого ответа действительно решило мою головную боль, где записывается тест f ** king после того, как я добавляю каждую вещь.Отказ от ответственности: я являюсь разработчиком плагина Gradle Test Logger.
Вы можете просто использовать плагин Gradle Test Logger для печати красивых журналов на консоли. Плагин использует разумные значения по умолчанию, чтобы удовлетворить большинство пользователей с минимальной или нулевой конфигурацией, но также предлагает ряд тем и опций конфигурации на любой вкус.
Примеры
Стандартная тема
Мокко тема
использование
Убедитесь, что вы всегда получаете последнюю версию от Gradle Central .
конфигурация
Вам не нужно никаких настроек вообще. Тем не менее, плагин предлагает несколько вариантов. Это можно сделать следующим образом (показаны значения по умолчанию):
Я надеюсь, вам понравится его использовать.
источник
slowThreshold
на0
.Добавьте это к,
build.gradle
чтобы остановить проглочение от проглатывания stdout и stderr.Это задокументировано здесь .
источник
Задача 'test' не работает для плагина Android, для плагина Android используйте следующее:
Смотрите следующее: https://stackoverflow.com/a/31665341/3521637
источник
В качестве продолжения великого ответа Шубхэма я хотел бы предложить использовать перечисляемые значения вместо строк . Пожалуйста, ознакомьтесь с документацией класса TestLogging .
источник
Моя любимая минималистичная версия, основанная на ответе Шубхам Чаудхари.
Поместите это в
build.gradle
файл:источник
В Gradle с помощью плагина Android:
Тогда вывод будет:
источник
Слияние Shubham Страшного ответа и использование JJD перечисления вместо строки
источник
Следуя ответу Бенджамина Мушко (19 марта 2011 г.), вы можете использовать
-i
флаг вместе с grep , чтобы отфильтровать тысячи нежелательных строк. Примеры:Сильный фильтр - отображать только имя и результат каждого модульного теста, а также общее состояние сборки. Ошибки или исключения при настройке не отображаются.
Мягкий фильтр - отображает название и результат каждого модульного теста, а также ошибки / исключения при настройке. Но это также будет включать некоторую не относящуюся к делу информацию:
Мягкий фильтр, Альтернативный синтаксис: (токены поиска разбиты на отдельные строки)
Объяснение того, как это работает: выходные данные первой команды
./gradlew test -i
передаются второй командеgrep
, которая отфильтровывает множество нежелательных строк на основе регулярного выражения."-E"
включает режим регулярного выражения и"|"
означает «или». Имя модульного теста и его результат разрешено отображать с помощью" > "
, а общий статус - с помощью"BUILD"
. В мягком фильтре"-v"
флаг означает «не содержит» и"^"
означает «начало строки». Таким образом, он удаляет все строки, которые начинаются с «Выполнение» или начинаются с «Создание» и т. Д.Пример для тестовых модулей Android с Gradle 5.1:
Пример покрытия модульным тестом Jacoco с Gradle 4.10:
источник
Если у вас
build.gradle.kts
написано на Kotlin DSL, вы можете распечатать результаты теста (я разрабатывал мультиплатформенный проект kotlin, без применения плагина "java"):источник
Просто добавьте следующее закрытие в ваш build.gradle. вывод будет напечатан после выполнения каждого теста.
источник