2016-01-28 135 views
0

我有幾個Java項目,這些項目使用Gradle和Jacoco插件在幾個Jenkins作業上運行。如何在多個Jenkins作業之間共享jacoco exec文件

比方說,我有兩個工作:

  • 核心
  • 應用

的核心工作,從SVN拉他的工作區:/Jenkins_workspace /核心/,然後建立和然後創建它的jacoco exec文件。它工作正常,我可以看到代碼覆蓋率。

該應用程序作業從SVN拉到他的工作區:/Jenkins_workspace/app/,然後構建並創建它的jacoco exec文件。它工作正常,我可以看到代碼覆蓋範圍

但是在應用程序工作內部有一些測試涵蓋了核心項目的一部分。所以核心工作的代碼覆蓋率應該更新。我想這個核心項目應該可以訪問應用程序作業的jacoco exec文件,但它們位於兩個不同的工作區。

問題:核心作業如何訪問應用程序作業的jacoco exec文件以更新核心代碼覆蓋率?

回答

0

不知何故,jacoco插件不允許當前作業的工作區外尋找EXEC文件。

因此,我所做的是,對於每個應用程序構建,其jacoco exec文件都被複制到核心工作區。核心工作將沒有問題找到應用程序作業的jacoco exec文件。

0

您可以嘗試使用「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> 

或gradle這個:

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