默认情况下,为项目依赖项运行gradle测试

时间:2016-09-22 12:28:27

标签: java gradle

是否有一种干净的方法可以在Gradle中运行项目Java依赖项的所有测试任务?我注意到Java依赖只能得到他们的" jar"任务运行,并跳过测试/构建。

main-code build.gradle

dependencies {
        compile project(":shared-code")
}

gradle:main-code:build< - 我想要运行的命令(也将运行:共享代码:测试,不要明确说明它)

:shared-code:compileJava UP-TO-DATE
:shared-code:processResources UP-TO-DATE
:shared-code:classes
:shared-code:jar

< - 共享代码实际运行的内容(不缺少构建/测试)

**我能想到的最好的事情是带有测试的jar上的finalizeBy任务

1 个答案:

答案 0 :(得分:2)

UPD:实际上有一项名为buildNeeded的任务

  

buildNeeded - 组装并测试该项目及其所依赖的所有项目。

它将构建当前项目所依赖的项目的运行测试。

OLD ANSWER: 似乎gradle没有开箱即用(在2.14.1版本上测试)。我想出了一个解决方法。 构建任务会触发对包含测试阶段的其他任务链的评估。

testwebserver/lib$ gradle build --daemon
:testwebserver-lib:compileJava UP-TO-DATE
:testwebserver-lib:processResources UP-TO-DATE
:testwebserver-lib:classes UP-TO-DATE
:testwebserver-lib:jar UP-TO-DATE
:testwebserver-lib:assemble UP-TO-DATE
:testwebserver-lib:compileTestJava UP-TO-DATE
:testwebserver-lib:processTestResources UP-TO-DATE
:testwebserver-lib:testClasses UP-TO-DATE
:testwebserver-lib:test UP-TO-DATE
:testwebserver-lib:check UP-TO-DATE
:testwebserver-lib:build UP-TO-DATE

为了强制为依赖项目(testwebserver)测试依赖项目(testwebserver-lib),我在testwebserver / build.gradle中添加了一个任务依赖项:

...
compileJava.dependsOn ':testwebserver-lib:test'

dependencies {
    compile project(':testwebserver-lib')
}
...