gradle test --tests org.gradle.SomeTest.someSpecificFeature
gradle test --tests *SomeTest.someSpecificFeature
gradle test --tests *SomeSpecificTest
gradle test --tests all.in.specific.package*
gradle test --tests *IntegTest
gradle test --tests *IntegTest*ui*
gradle test --tests *IntegTest.singleMethod
gradle someTestTask --tests *UiTest someOtherTestTask --tests *WebTest*ui
apply plugin: 'java'
test {
filter {
//specific test method
includeTestsMatching "org.gradle.SomeTest.someSpecificFeature"
//specific test method, use wildcard for packages
includeTestsMatching "*SomeTest.someSpecificFeature"
//specific test class
includeTestsMatching "org.gradle.SomeTest"
//specific test class, wildcard for packages
includeTestsMatching "*.SomeTest"
//all classes in package, recursively
includeTestsMatching "com.gradle.tooling.*"
//all integration tests, by naming convention
includeTestsMatching "*IntegTest"
//only ui tests from integration tests, by some naming convention
includeTestsMatching "*IntegTest*ui"
}
}
你可以做 gradle -Dtest.single=ClassUnderTestTest test 如果你想测试单个类或使用像 gradle -Dtest.single=ClassName*Test test 这样的regexp你可以找到更多关于测试的filtring类的例子under this link第23.12节 . 测试
6 回答
要运行一个测试类Airborn的答案是好的 .
使用一些找到here的命令行选项,你可以简单地做这样的事情 .
从gradle版本1.10开始,它支持使用test filter选择测试 . 例如,
对于多味道环境(Android的常见用例),check this answer,因为
--tests
参数将不受支持,您将收到错误 .你可以做
gradle -Dtest.single=ClassUnderTestTest test
如果你想测试单个类或使用像gradle -Dtest.single=ClassName*Test test
这样的regexp你可以找到更多关于测试的filtring类的例子under this link第23.12节 . 测试如果您有一个多模块项目:
让我们说你的模块结构是
你想要运行的测试(testToRun)是在b-module中,带有完整路径:com.xyz.b.module.TestClass.testToRun
在这里,您有兴趣在b模块中运行测试,因此您应该看到b模块可用的任务 .
上面的命令将列出b-module中包含描述的所有任务 . 在理想情况下,您将有一个名为 test 的任务来运行该模块中的单元测试 .
现在,您已经到了运行b-module中所有测试的点,最后您可以将参数传递给上面的任务来运行与特定路径模式匹配的测试
现在,如果你跑了,而不是这个
./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"
它将为模块a和b运行测试任务,这可能导致失败,因为在模块中没有与上述模式匹配的内容 .
经过深思熟虑后,以下内容对我有用:
gradle test --tests "a.b.c.MyTestFile.mySingleTest"
请注意,如果您有不同的口味,则--test选项可能不起作用(以“未知的命令行选项' - 测试'”失败) . 在这种情况下,有必要指定特定的测试任务(例如'testProdReleaseUnitTest'而不仅仅是'test')
下面是使用
gradlew
命令行选项运行单个测试类的命令:下面的示例使用变量
Variant_1
运行类com.example.TestClass
: