登录
首页 >  Golang >  Go问答

如果覆盖率低于某个百分比,则单元测试失败

来源:Golang技术栈

时间:2023-04-26 06:42:28 138浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《如果覆盖率低于某个百分比,则单元测试失败》,主要介绍了golang,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我制作了一个执行的生成文件go test -covermake unit_tests如果覆盖率低于 X ,命令是否可能失败?我该怎么做?

正确答案

你可以TestMain在你的测试中使用来做到这一点。TestMain 可以充当测试的自定义入口点,然后您可以调用testing.Coverage()以访问覆盖率统计信息。

因此,例如,如果您想在低于 80% 的情况下失败,您可以将其添加到您的包的一个测试文件中:

func TestMain(m *testing.M) {
    // call flag.Parse() here if TestMain uses flags
    rc := m.Run()

    // rc 0 means we've passed, 
    // and CoverMode will be non empty if run with -cover
    if rc == 0 && testing.CoverMode() != "" {
        c := testing.Coverage()
        if c 

然后go test -cover将调用此入口点,您将失败:

PASS
coverage: 63.0% of statements
Tests passed but coverage failed at 0.5862068965517241
exit status 255
FAIL    github.com/xxxx/xxx 0.026s

请注意,testing.Coverage()返回的数字低于测试报告的数字。我查看了代码,该函数计算其覆盖率的方式与测试的内部报告不同。我不确定哪个更“正确”。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表