我是Gradle的新手。我使用的是Gradle 1.10和Ubuntu 13。
我想知道是否有任何命令只执行一个单元测试类,类似于SBT中的testOnly。
我是Gradle的新手。我使用的是Gradle 1.10和Ubuntu 13。
我想知道是否有任何命令只执行一个单元测试类,类似于SBT中的testOnly。
当前回答
运行一个名为MyTest的测试:
./gradlew app:testDebug --tests=com.example.MyTest
其他回答
在Gradle 5之前的版本中,测试。单个系统属性可用于指定单个测试。
你可以用gradle -Dtest。single=ClassUnderTestTest test如果你想测试单个类或使用regexp如gradle -Dtest。single=ClassName*Test Test您可以在此链接下找到更多筛选测试类的示例。
Gradle 5删除了这个选项,因为它被使用——tests命令行选项的测试过滤所取代。
要运行单个测试类,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参数将不受支持,您将得到一个错误。
运行一个名为MyTest的测试:
./gradlew app:testDebug --tests=com.example.MyTest
对于多模块项目,有必要使用模块的名称和buildType:
./gradlew :module_name:testDebugUnitTest --tests com.package_name.TestsClass.*
运行一些测试方法,使用相同的命令,但是使用test的名称:
./gradlew :module_name:testDebugUnitTest --tests com.package_name.TestsClass.test
这对我很有效
释放的例子: gradle testReleaseUnitTest——测试testClass 调试情况: gradle testDebugUnitTest——测试AsyncExecutorTest
您可以使用:gradle -q projects查看项目,并移动到要测试的类所在的项目