我想知道是否有任何工具可以将go test -coverprofile=cover.out
转换为Jenkins可以接受的格式?我找到了一些工具,例如go-junit-report和go2xunit,但它们实际上只是转换go test -v
的输出,而不是覆盖率报告。
我想直接了解Jenkins的详细测试报道。基本上,我希望在Jenkins网页上看到go tool cover -func=cover.out
和go tool cover -html=cover.out
的输出。
答案 0 :(得分:3)
有几种转换工具可以将覆盖率数据从go test
转换为Cobertura for 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>
请注意,您需要Go 1.10+至run -coverprofile
against multiple packages in one run。
答案 1 :(得分:2)
https://github.com/AlekSi/gocov-xml
这就是我们所需要的。使用Coberuta插件生成覆盖率配置文件。
答案 2 :(得分:0)
Go覆盖率报告没有专门的插件,也没有通用代码覆盖率。
对于这样的报告,我使用HTML Publisher Plugin发布构建期间创建的.html
文件。