在Pipeline 設定 Test Coverage

  • 454
  • 0

如果maven己經整合好jacoco的話,若要在jenkins進行測試覆蓋率只要使用jacoco的plugin

只要在maven的post build的動作設定產生jacoco report

就可以很容易的得到jacoco產生出來的test coverage的報表

但如果是使用在Jenkins是利用 pipeline來做build,並產生test coverage report呢?

目前在Jenkins 2.9時就沒有辦法透過這個插件來進行了

不過因為先前在maven 己經整併好jacoco了,如果有整合的話,pom.xml的內容應該會像下圖這樣

            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

在使用pipeline時,可以直接使用maven的指令,來執行j測試覆蓋率並產生報表

stage 'gen jacoco exec'
bat "${mvnHome}/bin/mvn jacoco:prepare-agent"
    
stage 'gen jacoco report'
bat "${mvnHome}/bin/mvn jacoco:report"

產生的html可以在.jenkins\workspace\your project\target\site 裡找到,index.html會有所有程式的測試覆蓋率概況

雖然目前沒辦法像plugin一樣直接在jenkins的project顯示圖表,但之後應該會有更好的整合方式