Gradle 包括来自其他模块的测试

Gradle 包括来自其他模块的测试,gradle,build.gradle,Gradle,Build.gradle,我的项目如下所示: ├───module1-test-cases │ └───src │ └───test │ └───groovy │ └───specs │ └───module1test └───module2-test-cases └───src └───test └───groovy └───specs

我的项目如下所示:

├───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测试任务时,它将运行来自当前模块和我想要的模块的所有测试。

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

如果您想在运行
module2
测试时始终运行
module1
测试,您可以依赖测试任务

在模块1
build.gradle

test.dependsOn(':module2:test')
这将在运行module1
test
任务之前运行module2
test
任务,如果运行root
test
任务,则任务将不会运行两次。

此外,您还可以将
dependsOn
放入任务中

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

Gradle将负责运行测试类,您不需要说要运行哪些类。测试发现(取决于您的项目结构和源集)将为您完成此任务。

如果至少有一个测试落在:模块2中:模块1中的测试目标测试任务根本没有启动。我可以同时运行它们吗?@sann05那么不管它们是否失败,你都想运行测试吗?这是在测试失败时中断构建的默认行为。