我有几个Java项目在Gradle和Jacoco插件的几个Jenkins作业上运行。
假设我有两份工作:
核心工作,从SVN拉到他的工作区: / Jenkins_workspace / core / ,然后构建然后创建它的jacoco exec文件。它工作正常,我可以看到代码覆盖率。
应用作业,从SVN拉到他的工作区: / Jenkins_workspace / app / ,然后构建然后创建其jacoco exec文件。它工作正常,我可以看到代码覆盖率
然而,在app工作中,有一些测试可以覆盖核心项目的一部分。因此,应更新核心作业的代码覆盖率。我想核心项目应该可以访问app作业的jacoco exec文件,但它们位于两个不同的工作区。
问题:核心作业如何访问应用作业的jacoco exec文件以更新核心代码覆盖率?
答案 0 :(得分:0)
您可以尝试同时使用" destFile"并且"追加"组态。 如果你使用maven:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>jacoco-ut</id>
<phase>process-test-classes</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>/path/to/jacoco.exec</destFile>
<append>true</append>
</configuration>
</execution>
</executions>
</plugin>
或gradle:
test {
jacoco {
append = true
destinationFile = file("/path/to/jacoco.exec")
}
}
答案 1 :(得分:0)
不知何故,jacoco插件不允许在当前作业工作区之外搜索exec文件。
所以我所做的是,对于每个应用程序构建,其jacoco exec文件都被复制到核心工作区。然后核心工作将找到应用程序作业的jacoco exec文件没有问题。