Запустить единый интеграционный тест с помощью gradle

Я пытаюсь выполнить единые интеграционные тесты, используя флаг gradle -Dtest.single. Я добавил еще один набор источников, src/integrationTest и поставил там тесты. У меня есть задача тестирования интеграции

task integrationTests(type: Test) {
    dependsOn 'assemble', 'integrationTestClasses'    
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
}

Это работает нормально, но если я пытаюсь запустить один тест, он говорит мне, что не может найти соответствующий тест. Я не хочу запускать каждый интеграционный тест каждый раз, когда я пишу новый. Есть ли способ сделать это?

Ответ 1

Правильный синтаксис:

gradle testTaskName -DtestTaskName.single=...

В этом случае:

gradle integrationTest -DintegrationTest.single=...

Ответ 2

Так как Gradle 1.10 вы можете написать:

 //select specific test method
gradle test --tests org.gradle.SomeTest.someFeature

//select specific test class
gradle test --tests org.gradle.SomeTest

//select all tests from package
gradle test --tests org.gradle.internal*

//select all ui test methods from integration tests by naming convention
gradle test --tests *IntegTest*ui*

//selecting tests from different test tasks
gradle test --tests *UiTest integTest --tests *WebTest*ui

Подробнее здесь http://www.gradle.org/docs/1.10/release-notes#executing-specific-tests-from-the-command-line