什么是go-junit-report
github.com/jstemmer/go-junit-report
将go test输出转换为 junit xml
go test
安装和使用
go install github.com/jstemmer/go-junit-report@latest
go-junit-report 读取stdin的完整GO测试输出,并将JUNIT兼容XML写入stdout。为了捕获构建错误以及测试输出,将stdout和stderr重定向到go-junit-report。
go test -v 2>&1 | go-junit-report > report.xml
例如,还支持解析benchmark 输出,例如
go test -v -bench . -count 5 2>&1 | go-junit-report > report.xml
-set-exit-code
go-junit-report-help
go的单元测试
- 文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码
- 你必须import testing这个包
- 所有的测试用例函数必须是Test开头
- 测试用例会按照源代码中写的顺序依次执行
- 测试函数TestXxx()的参数是testing.T,我们可以使用该类型来记录错误或者是测试状态
- 测试格式:func TestXxx (t testing.T),Xxx部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如Testintdiv是错误的函数名。
- 函数中通过调用testing.T的Error, Errorf, FailNow, Fatal, FatalIf方法,说明测试不通过,调用Log方法用来记录测试的信息。
单元测试执行
go的自带go test还是很好用的,执行的前提是需要写对应的单元测试(功能测试、性能测试 可写在1个测试文件里)
go test #执行单元测试
go test -v #打印执行的详细信息,即使测试成功(默认情况下测试成功是不打印结果的)
go test -v xxx #执行指定文件的单元测试(此处注意,go只会读取go/src下面的目录。所以写文件路径不需要加go/src)
go test -v xxx> test # 执行指定文件的单元测试并且将结果写入文档(文件名根据自己需要设置,文件内容=终端显示)
go test -v xxx -json # 执行指定文件的单元测试并且将结果转化为json格式
go test -v xxx -json > test.json # 执行指定文件的单元测试并且将结果转化为json格式写入文档(文件名根据自己需要设置,文件内容=终端显示)
go test -bench=. #执行性能测试
go test -bench=. -v #显示执行的详细信息
直接生成xml报告
go get -u github.com/jstemmer/go-junit-report #安装报告模板插件
go test -v xx/xx | go-junit-report > test.xml #测试指定文件,并直接生成xml报告