首页 文章

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

提问于
浏览
3

有没有一种干净的方法来在Gradle中运行项目Java依赖项的所有测试任务?我注意到Java依赖项只能运行它们的“jar”任务,并跳过测试/构建 .

主代码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 回答

  • 2

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

    buildNeeded - 组装和测试此项目及其依赖的所有项目 .

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


    OLD ANSWER: 似乎gradle没有开箱即用(在2.14.1版本上测试过) . 我想出了一个解决方法 . build 任务触发对包括测试阶段在内的一系列其他任务的评估 .

    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-lib)的依赖项目(testwebserver),我在testwebserver / build.gradle中添加了一个任务依赖项:

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

相关问题