有没有一种干净的方法来运行 Gradle 中项目 Java 依赖项的所有测试任务?我注意到 Java 依赖项只会运行它们的“jar”任务,并跳过测试/构建。
主代码 build.gradle
dependencies {
compile project(":shared-code")
}
Run Code Online (Sandbox Code Playgroud)
gradle :main-code:build <-- 我想运行的命令(也将运行 :shared-code:tests ,不想明确说明它)
:shared-code:compileJava UP-TO-DATE
:shared-code:processResources UP-TO-DATE
:shared-code:classes
:shared-code:jar
Run Code Online (Sandbox Code Playgroud)
<-- 共享代码实际运行的内容(不缺少构建/测试)
** 我能想到的最好的事情是在带有测试的 jar 上的 finalizeBy 任务
UPD:实际上有一个名为 buildNeeded 的任务
buildNeeded - 组装并测试该项目及其依赖的所有项目。
它将构建当前项目所依赖的项目的运行测试。
旧答案:
似乎 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
Run Code Online (Sandbox Code Playgroud)
为了强制测试依赖项目(testwebserver)的依赖项目(testwebserver-lib),我在 testwebserver/build.gradle 中添加了一个任务依赖项:
...
compileJava.dependsOn ':testwebserver-lib:test'
dependencies {
compile project(':testwebserver-lib')
}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |