#android #testing #output
#Android #тестирование #вывод
Вопрос:
У меня есть проект Android, в котором я запускаю обычные модульные тесты, а также инструментальные тесты.
Теперь дело в том, что результаты
- модульные тесты хранятся в
build/reports/tests
(./debug
или./release
) - инструментальные тесты хранятся в
build/outputs/connected
Возможно ли каким-либо образом изменить каталог результатов инструментальных тестов на build/reports/tests/connected
?
Спасибо вам уже!
Ответ №1:
Нашел ответ сам, Чтобы изменить каталог для использования инструментальных тестов:
android {
testOptions {
reportDir = "$project.buildDir/reports"
resultsDir = "$project.buildDir/test-results"
}
# Or for lint if needed
lintOptions {
htmlOutput = file("$project.buildDir/reports/lint/LINT-results.html")
xmlOutput = file("$project.buildDir/test-results/lint/LINT-results.xml")
}
}
Комментарии:
1. У меня это не работает. После добавления этого кода при использовании grade test папка не создается. Используется последняя версия gradle, поставляемая в комплекте с последней стабильной версией Android Studio на Win10
Ответ №2:
Я считаю, что это было бы более надежным:
android {
[...]
testOptions {
if (project.hasProperty("customResultsDir")) {
resultsDir "${customResultsDir}"
}
if (project.hasProperty("customReportDir")) {
reportDir "${customReportDir}"
}
}
}
Бонус заключается в том, что он проверяет, передано ли свойство, прежде чем пытаться его использовать (хорошая практика). Но по-настоящему интересно то, что таким образом вы интерполируете замыкание вместо переменной — различия открывают дополнительные возможности (проверьте интерполяцию строк и интерполяцию замыкания).
В моем сценарии только с помощью закрытия мне удалось получить свойства для заполнения в точное время.