用gradle运行单一集成测试

Jef*_*rey 17 testing integration gradle

我正在尝试使用gradle的-Dtest.single标志运行单个集成测试.我添加了另一个源集,src/integrationTest并将测试放在那里.我有一个集成测试任务

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

运行正常,但如果我尝试运行单个测试,它告诉我它找不到匹配的测试.我不希望每次编写新的测试时都要运行每个集成测试.有没有办法做到这一点?

pdi*_*aso 36

从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
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多 http://www.gradle.org/docs/1.10/release-notes#executing-specific-tests-from-the-command-line


Pet*_*ser 20

正确的语法是:

gradle testTaskName -DtestTaskName.single=...

在这种情况下:

gradle integrationTest -DintegrationTest.single=...