2013-08-05 3 views
12

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

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

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

ответ

11

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

gradle testTaskName -DtestTaskName.single=...

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

gradle integrationTest -DintegrationTest.single=...

+1

Спасибо, Питер. Работала отлично. –

+0

Когда я пытаюсь это, я получаю что-то вроде: '$ gradlew -Dtest.single = SingleTest: подпроекта: тест ... : buildSrc: тест FAILED FAILURE: Строить неудачу с исключением. Что пошло не так: Выполнение выполнено для задачи ': test'. Не удалось найти подходящий тест для шаблона: SingleTest' –

+0

Возможно, у вас нет тестового класса с этим именем? –

28

С 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

Смежные вопросы