我是从未有过格莱德尔的。我使用Gradle 1.10和Ubuntu 13。
我想知道是否有任何命令只执行一个单元测试类,类似于SBT中的testOnly。
发布于 2015-07-17 05:26:30
运行一个单独的测试类,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'在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"
}
}对于多种风格的环境(Android的一个常见用例),检查这个答案,因为--tests参数将不受支持,您将得到一个错误。
发布于 2014-03-19 13:02:03
发布于 2016-06-11 10:45:22
如果您有一个多模块项目:
假设您的模块结构是
root-module
-> a-module
-> b-module您想要运行的测试(TestToRun)是在b-模块中运行的,具有完整的路径: com.xyz.b.module.TestClass.testToRun。
由于您对在b-模块中运行测试感兴趣,所以您应该可以看到b-模块可用的任务。
./gradlew :b-module:tasks上面的命令将列出b-模块中的所有任务和说明。在理想的情况下,您将有一个名为test的任务来在该模块中运行单元测试。
./gradlew :b-module:test现在,您已经达到了运行b-模块中所有测试的程度,最后您可以向上面的任务传递一个参数,以运行与特定路径模式匹配的测试。
./gradlew :b-module:test --tests "com.xyz.b.module.TestClass.testToRun"现在,如果你跑了
./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"
它将运行模块a和b的测试任务,这可能导致失败,因为在a-模块中没有匹配上述模式的任何内容。
https://stackoverflow.com/questions/22505533
复制相似问题