【问题标题】:How to share jacoco exec files between multilple Jenkins jobs如何在多个 Jenkins 作业之间共享 jacoco exec 文件
【发布时间】:2016-05-05 18:22:20
【问题描述】:

我有几个使用 Gradle 和 Jacoco 插件在多个 Jenkins 作业上运行的 Java 项目。

假设我有两份工作:

  • 核心
  • 应用程序

核心作业,从 SVN 拉到他的工作区:/Jenkins_workspace/core/,然后构建并创建它的 jacoco exec 文件。它工作正常,我可以看到代码覆盖率。

app 作业从 SVN 拉到他的工作区:/Jenkins_workspace/app/,然后构建并创建它的 jacoco exec 文件。它工作正常,我可以看到代码覆盖率

但是在应用程序工作中,有一些测试实际覆盖了核心项目的一部分。所以核心工作的代码覆盖率应该更新。我猜核心项目应该可以访问应用程序作业的 jacoco exec 文件,但它们位于两个不同的工作区。

问题:核心作业如何访问app作业的jacoco exec文件来更新核心代码覆盖率?

【问题讨论】:

    标签: jenkins gradle jacoco


    【解决方案1】:

    您可以尝试同时使用“destFile”和“append”配置。 如果你使用 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>
    

    或毕业:

    test {
        jacoco {
            append = true
            destinationFile = file("/path/to/jacoco.exec")
        }
    }
    

    【讨论】:

      【解决方案2】:

      不知何故,jacoco 插件不允许在当前作业工作区之外搜索 exec 文件。

      所以我所做的是,对于每个应用程序构建,它的 jacoco exec 文件都会复制到核心工作区。然后核心作业找到app作业的jacoco exec文件就没有问题了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多