从gradle命令行运行单个测试

时间:2019-02-08 01:21:24

标签: java gradle

我有一个多项目gradle设置

RootProject
     |
     ---- ProjectA
     |
     ---- ProjectB

ProjectA包含大约500个单元测试。单个类MyClass中有3个失败。

我每次都做:

./gradlew :ProjectA:test

它运行所有500个单元测试。

我试图在MyClass内运行单个失败的测试,或者至少在MyClass中包含测试以减少构建时间。

我尝试过:

./gradlew -D:MyProject:test.single=MyClass --no-rebuild :MyProject:test

但是,它仍然继续运行所有测试。

尝试一下

./gradlew :MyProject:test --tests '*MyClass*'

但是仍然花费大量时间,因为它似乎正在解析每个测试类的名称以找到匹配的名称。

尝试

./gradlew :MyProject:test --tests "com.mypackage1.mypackage2.MyClass.testMethod1"

引发以下错误:

> No tests found for given includes: [**/*SomeTest.class](exclude rules) [com.mypackage1.mypackage2.MyClass.testMethod1](--tests filter)

我想念什么?我在做什么错了?

这似乎是一个简单的用例,应该非常明显。

编辑1:

RootProject build.gradle具有:

configure(subprojects.findAll {it.name != 'SomeProjToIgnore'}) {
test {
    forkEvery 1       

    //Exclude tests
    exclude '**/*SomeTest.class'
}
}

编辑2:

./gradlew :MyProject:test --tests 'MyClass*'

快得多。 (注意,从前面删除了“ *”)。但我仍然不知道如何在MyClass内部运行单个测试。

0 个答案:

没有答案