2016-06-08 172 views
3

我想知道是否有任何工具可以將go test -coverprofile=cover.out轉換成Jenkins可以接受的格式?我發現了一些工具,例如go-junit-reportgo2xunit,但他們實際上只是將來自go test -v的輸出轉換成非覆蓋報告。Go Coverage Report與Jenkins集成

我想直接瞭解Jenkins的詳細測試範圍。基本上,我想在Jenkins網頁上看到go tool cover -func=cover.outgo tool cover -html=cover.out的輸出。

回答

0

沒有專門的Go覆蓋報告插件,也沒有專門的代碼覆蓋。

對於這樣的報告,我使用HTML Publisher Plugin發佈構建期間創建的.html文件。

+0

我剛剛發現https://github.com/AlekSi/gocov-xml,我認爲它會做我們需要的! –

+0

啊,很好。很高興知道! –

0

有幾種工具可用於將覆蓋率數據從go test轉換爲Jenkins的Cobertura:gocover-coberturagocovgocov-xml

您可以使用gocover-cobertura如下:

$ go get github.com/t-yuki/gocover-cobertura 

$ go test -coverprofile=cover.out example.com/demo/... 
ok  example.com/demo 0.008s coverage: 0.0% of statements 
ok  example.com/demo/cmd/demo 0.020s coverage: 23.4% of statements 

$ gocover-cobertura <cover.out> coverage.xml 

$ head coverage.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd"> 
<coverage line-rate="0.35415787" branch-rate="0" version="" timestamp="1520609235359" lines-covered="839" lines-valid="2369" branches-covered="0" branches-valid="0" complexity="0"> 
     <sources> 
       <source>/usr/local/go/src</source> 
       <source>/Users/wilfred/workspace/go-scratch/src</source> 
     </sources> 
     <packages> 
       <package name="example.com/demo/cmd/demo" line-rate="0.4848485" branch-rate="0" complexity="0"> 
         <classes> 

請注意,您需要轉到1.10+到run -coverprofile against multiple packages in one run