我有一个多项目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
内部运行单个测试。