gradle - 包括来自其他模块的测试

标签 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 test 任务时,它会从当前模块和我想要的模块运行所有测试。

最佳答案

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

如果你想运行 module1运行时总是测试 module2测试你可以依赖于测试任务。

在模块 1 build.gradle

test.dependsOn(':module2:test')

这将运行模块 2 test运行模块1之前的任务test任务,如果你运行 root test任务是 不会运行它们两次。

另外,你可以把 dependsOn在你的任务里面。
test{
    dependsOn ':othermodule:test'
    exclude '**/smth/**'   
}

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

关于gradle - 包括来自其他模块的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45754005/

相关文章:

gradle - 如何运行 ktor 应用程序?

gradle - 在Gradle中,如何执行对延迟评估的属性(在扩展名上)的验证?

scala - Gradle 斯卡拉 2.12

android - 从/tmp/gradle7963227675482339513.bin 中的二进制存储读取数据时出现问题(存在 : true)

android - 如何在Android Studio中为APK构建获取正确的gradle.startParameter.taskNames

Android studio 无法正常工作,而 gradle 无法编译并出现错误

android - Android启动Genymotion,但未在设备中启动

dependencies - Gradle:如何从多项目脚本中的另一个项目复制文件夹?

java - Gradle:从依赖项运行测试

java - 将某些 jar /组包括到gradle jar中