У меня есть сборка Gradle, которая выполняет набор тестов Java Selenium на Jenkins. Поскольку синхронизация может вызвать сбои теста Selenium, я повторно запускаю сбои раз или два.
Для этого я использую механизм фильтрации тестов Gradle, например:
test {
[...]
filter {
includeTestsMatching "*AccountTest.canWithdrawMoney*"
}
[...]
}
Но это означает, что я долженсделать коммит Git с фильтром.
Теоретически я также могу использовать фильтр командной строки, например:
gradle test --tests "*AccountTest.canWithdrawMoney*"
Проблема в том, что я не вызываю gradle test
для запускатесты. Я называю свои собственные задачи gradle testLocal
или gradle testServer
, в зависимости от того, выполняю ли я тесты на своем локальном ПК или сервере Jenkins, а соответствующая задача вызывает test
.
(сервер Jenkins имеетделать дополнительные вещи, такие как загрузка и запуск нашего продукта; локально он уже запущен.)
Если я попытаюсь ...
gradle testLocal --tests "*AccountTest.canWithdrawMoney*"
... то произойдет сбой с помощью .. .
Неизвестный параметр командной строки '--tests'.
... предположительно потому, что testLocal
и testServer
нет (тип: Test)задач (и я не хочу, чтобы они были).
Я был бы рад, если бы тестовый фильтр был параметром сборки Jenkins, так как сборка уже параметризована, но я не могу найти способполучить фильтр в Gradle.
Итак: При такой настройке есть ли более простой способ передать тестовый фильтр в Gradle, который не потребует от меня добавления фильтра в качестве коммита Git?