小编典典

如何使用 Gradle 只运行一个单元测试类

all

我是 Gradle 的新手。我使用 Gradle 1.10 和 Ubuntu 13。

我想知道是否有任何命令只执行一个单元测试类,类似于testOnlySBT。


阅读 98

收藏
2022-03-09

共1个答案

小编典典

运行单个测试类 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参数将不受支持并且您会收到错误消息。
请注意,如果您有不同的构建(失败),该--tests选项可能不起作用。在这种情况下,有必要指定特定的测试任务(例如,而不仅仅是)types/flavors``Unknown command-line option '--tests'``testProdReleaseUnitTest``test

2022-03-09