Mal*_*ana 476
要运行一个测试类Airborn的答案是好的.
使用这里找到的一些命令行选项,你可以简单地做这样的事情.
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
Run Code Online (Sandbox Code Playgroud)
从gradle版本1.10开始,它支持使用测试过滤器选择测试.例如,
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"
}
}
Run Code Online (Sandbox Code Playgroud)
对于多味道环境(Android的常见用例),请检查此答案,因为--tests参数将不受支持并且您将收到错误.
小智 177
你可以做gradle -Dtest.single=ClassUnderTestTest test,如果你想测试一个类或使用正则表达式像gradle -Dtest.single=ClassName*Test test你可以找到测试filtring类的更多的例子根据这个链接部分23.12.测试
gre*_*ror 94
如果您有一个多模块项目:
让我们说你的模块结构是
root-module
-> a-module
-> b-module
Run Code Online (Sandbox Code Playgroud)
你想要运行的测试(testToRun)是在b-module中,带有完整路径:com.xyz.b.module.TestClass.testToRun
在这里,您有兴趣在b模块中运行测试,因此您应该看到b模块可用的任务.
./gradlew :b-module:tasks
Run Code Online (Sandbox Code Playgroud)
上面的命令将列出b-module中包含描述的所有任务.在理想情况下,您将有一个名为test的任务来运行该模块中的单元测试.
./gradlew :b-module:test
Run Code Online (Sandbox Code Playgroud)
现在,您已经到了运行b-module中所有测试的点,最后您可以将参数传递给上面的任务来运行与特定路径模式匹配的测试
./gradlew :b-module:test --tests "com.xyz.b.module.TestClass.testToRun"
Run Code Online (Sandbox Code Playgroud)
现在,如果你跑了,而不是这个
./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"
它将为模块a和b运行测试任务,这可能导致失败,因为在模块中没有与上述模式匹配的任何内容.
Pra*_*oya 28
经过深思熟虑后,以下内容对我有用:
gradle test --tests "a.b.c.MyTestFile.mySingleTest"
ana*_*gaf 24
请注意,如果您有不同的口味,则--test选项可能不起作用(以"未知的命令行选项' - 测试'"失败).在这种情况下,有必要指定特定的测试任务(例如'testProdReleaseUnitTest'而不仅仅是'test')
Vla*_*lav 18
对于多模块项目,必须使用模块的名称和构建类型:
./gradlew :module_name:testDebugUnitTest --tests com.package_name.TestsClass.*
Run Code Online (Sandbox Code Playgroud)
要运行某些测试方法,请使用相同的命令,但使用测试名称:
./gradlew :module_name:testDebugUnitTest --tests com.package_name.TestsClass.test
Run Code Online (Sandbox Code Playgroud)
运行一个名为 MyTest 的测试:
./gradlew app:testDebug --tests=com.example.MyTest
Run Code Online (Sandbox Code Playgroud)
小智 5
以下是使用gradlew命令行选项运行单个测试类的命令:
gradlew.bat Connected**your bundleVariant**AndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.TestClass
Run Code Online (Sandbox Code Playgroud)
下面的示例运行com.example.TestClass带有变体的类Variant_1:
gradlew.bat ConnectedVariant_1AndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.TestClass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235410 次 |
| 最近记录: |