У меня есть проект с юнит-тестами. Мы решили перейти с testng на JUnit 5, но сделаем это за пару итераций. И теперь в нашем проекте присутствуют тесты для обеих платформ.
Я справляюсь с этим, используя следующий скрипт сборки:
def commonTestConfig =
{
ignoreFailures = true
...
}
task testNGTests(type: Test) {
useTestNG()
configure commonTestConfig
reports.html.destination = file("$buildDir/reports/testng")
}
task junitTests(type: Test) {
useJUnitPlatform()
configure commonTestConfig
reports.html.destination = file("$buildDir/reports/junit")
}
test {
dependsOn testNGTests
dependsOn junitTests
}
Но если я пытаюсь запустить конкретный c тест из командной строки затем сборка завершается неудачно:
call gradle --warning-mode all test --tests my.package.LicenseTests
Task :compileJava UP-TO-DATE
Task :processResources UP-TO-DATE
Task :classes UP-TO-DATE
Task :compileTestJava UP-TO-DATE
Task :processTestResources UP-TO-DATE
Task :testClasses UP-TO-DATE
Task :testNGTests UP-TO-DATE
Task :junitTests UP-TO-DATE
Task :test FAILED
FAILURE: Build failed with an exception.
* What went wrong: Execution failed for task ':test'.
No tests found for given includes: [my.package.LicenseTests](--tests filter)
Т.е. указанная выше команда запускает все тесты (задачи testNGTests и junitTests) без применения предоставленного фильтра. И после этого пытается найти тесты для запуска в задаче test , в которой никто не должен запускаться.
Есть ли способ запустить как тесты JUnit 5, так и testng в Gradle, в способ сохранить возможность пройти тестовый фильтр из командной строки?