2016-06-08 3 views
3

Интересно, есть ли какой-нибудь инструмент, который может конвертировать go test -coverprofile=cover.out в форматы, которые могут принимать Jenkins? Я нашел некоторые инструменты, такие как go-junit-report и go2xunit, но они на самом деле просто конвертируют вывод из go test -v, который не является докладом о покрытии.Интеграция Go Coverage Report с Jenkins

Я хочу знать подробное покрытие теста в Jenkins напрямую. В принципе, я хочу видеть результаты от go tool cover -func=cover.out и go tool cover -html=cover.out на веб-странице Jenkins.

ответ

0

Не существует специального плагина для отчетов о покрытиях Go, а также не для общего покрытия кода.

Для таких отчетов я использую HTML Publisher Plugin для публикации .html файлов, созданных во время сборки.

+0

Я только что нашел https://github.com/AlekSi/gocov-xml, я думаю, что он будет делать то, что нам нужно! –

+0

Ах, хорошо. Хорошо знать! –

0

Есть несколько Go инструментов для преобразования данных покрытия из go test в Cobertura для Jenkins: gocover-cobertura или gocov с gocov-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.