当前位置: 首页 > 面试题库 >

如何衡量Golang中的代码覆盖率?

申查猛
2023-03-14
问题内容

有没有人成功地为Go单元测试生成代码覆盖率?我在网络上找不到该工具。


问题答案:

请注意,Go1.2(2013年第四季度,rc1可用)现在将显示
测试覆盖率结果

的一项主要新功能go test是, 它现在可以计算并在单独安装的新程序的帮助下go tool cover显示测试覆盖率结果

cover工具是一部分go.toolssubrepository。可以通过运行安装

$ go get golang.org/x/tools/cmd/cover

封面工具有两件事。

  • 首先,go test给“ ”
    -cover标志时,它将自动运行以重写包的源并插入检测语句。然后将测试编译并照常运行,并报告基本覆盖率统计信息:


$ go test -coverprofile fmtcoverage.html fmt
ok      fmt 0.060s  coverage: 91.4% of statements
$

其次,对于更详细的报告,要“进行测试”的不同标志可以创建一个覆盖率配置文件,go tool cover然后用“ ” 调用的覆盖程序可以对其进行分析。

弗兰克·希勒(FrankShearar)提到:

Go(2013/09/19)的最新版本使用:

go test -coverprofile <filename> <package name>

运行命令可以找到有关如何生成和分析覆盖率统计信息的详细信息

$ go help testflag
$ go tool cover -help

伊万·布莱克(IvanBlack)在评论中提到:

go test -coverprofile cover.out然后在您的默认浏览器中
go tool cover -html=cover.out打开cover.out

我什至不想等待浏览器打开,所以我定义了这个别名:

alias gc=grep -v -e " 1$" cover.out

我只需要输入gc,并拥有所有行的列表 不是 尚未覆盖的(这里用coverage.out 以“结束1“)。



 类似资料:
  • 问题内容: 我试图用来衡量我正在构建的服务的测试覆盖率。这是一个REST API,我通过旋转,测试HTTP请求和查看HTTP响应来对其进行测试。这些测试不是服务包的一部分,并且返回0%的测试覆盖率。有没有办法获得实际的测试覆盖率?我希望在给定的端点上进行最理想的方案测试,至少可以覆盖特定端点处理程序的代码的30-50%,并且可以通过添加更多针对常见错误的测试来进一步改善此情况。 问题答案: 有人向

  • 代码覆盖是查找未被测试执行的代码区域的过程。不过要记住的是这并不能说明你测试代码的有效性。 在requirements.txt文件中添加依赖包: coverage==4.4.2 然后,我们在manage.py中新增一个命令: import coverage COV = coverage.coverage( branch=True, include='project/*',

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 在maven构建过程中,我使用启动我的应用程序,并使用故障安全运行集成测试。现在我想从测试中的应用程序获取覆盖数据。 问题是,覆盖率报告包含我的应用程序的所有类,但没有覆盖率数据(全部为0%)。当我将jacoco代理附加到failsafe插件时,它会生成测试类的代码覆盖率,这并没有真正的帮助。 有什么想法吗? process exec maven插件配置: 使用以下Jacoco配置:

  • 目前,我可以让sonarqube使用mvn sonar:sonar扫描一些文件,但我永远无法获得代码覆盖率。我浏览了所有文档,并将jacoco包括在我的pom中,并试图设置项目属性以反映代码的结构。我以前没有真正使用过maven,所以这个任务有点难。有人能为我提供一个“像我五岁一样解释”的解决方案吗。我也有多个模块。

  • 问题内容: 我正在使用Mocha测试我的NodeJS应用程序。我无法弄清楚如何使用其代码覆盖功能。我尝试使用Google搜索,但没有找到任何合适的教程。请帮忙。 问题答案: 您需要一个额外的库来覆盖代码,而伊斯坦布尔的强大和便捷将使您震惊。通过Mocha测试后,请尝试以下操作: 现在,只需将命令nyc放在现有测试命令的前面,例如: