包括来自其他模块的测试

时间:2017-08-18 10:06:10

标签: gradle build.gradle

我的项目如下:

├───module1-test-cases
│   └───src
│       └───test
│           └───groovy
│               └───specs
│                   └───module1test
└───module2-test-cases
    └───src
        └───test
            └───groovy
                └───specs
                    └───module2test

有很多不同的模块,每个模块都有自己的build.gradle文件,所以我可以运行单独模块的测试

build.gradle示例

dependencies{
    compile("org.codehaus.groovy:groovy-all:2.3.3")
    compile project(":core")
    compile("commons-codec:commons-codec:1.10")
    testCompile("junit:junit:4.11")
    testCompile project(":module2-test-cases")
}
test{
    exclude '**/smth/**'   
}

我想要包含来自其他模块的测试,所以当我运行gradle测试任务时,它会从当前模块和我想要的模块运行所有测试。

1 个答案:

答案 0 :(得分:1)

如果这是一个多项目,在root上运行test将运行所有模块中的所有测试。

如果要在运行module1测试时始终运行module2测试,则可以依赖于测试任务。

模块1 build.gradle

中的

test.dependsOn(':module2:test')

这将在运行module1 test任务之前运行module2 test任务,如果运行root test任务,将不再运行它们两次。

另外,您可以将dependsOn放入任务中。

test{
    dependsOn ':othermodule:test'
    exclude '**/smth/**'   
}

Gradle将负责运行测试类,您无需说出要运行的类。测试发现(取决于您的项目结构和sou​​rceSets)将为您完成。