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

如何衡量Golang集成测试覆盖率?

林龙野
2023-03-14
问题内容

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


问题答案:

有人向我指出了该-coverpkg指令,它可以满足我的需要-测量特定程序包中的测试覆盖率,即使使用该程序包而不是该程序包一部分的测试也是如此。例如:

$ go test -cover -coverpkg mypackage ./src/api/...
ok      /api    0.190s  coverage: 50.8% of statements in mypackage
ok      /api/mypackage   0.022s  coverage: 0.7% of statements in mypackage

相比

$ go test -cover ./src/api/...
ok      /api    0.191s  coverage: 71.0% of statements
ok      /api/mypackage   0.023s  coverage: 0.7% of statements

在上面的例子中,我有测试中main_test.go,其是在package main一个使用package mypackage。我对它的覆盖范围最感兴趣,package mypackage因为它包含了项目中99%的业务逻辑。

我对Go很陌生,因此很可能这不是通过集成测试衡量测试覆盖率的最佳方法。



 类似资料:
  • 问题内容: 有没有人成功地为Go单元测试生成代码覆盖率?我在网络上找不到该工具。 问题答案: 请注意,Go1.2(2013年第四季度,rc1可用)现在将显示 测试覆盖率结果 : 的一项主要新功能是, 它现在可以计算并在单独安装的新程序的帮助下显示测试覆盖率结果。 该工具是一部分subrepository。可以通过运行安装 封面工具有两件事。 首先,给“ ” 标志时,它将自动运行以重写包的源并插入检

  • 使用jacoco代理并获取测试覆盖率报告有大量答案。大多数答案都是一半,我有点困惑。 以下是我想做的:1。我的Java应用程序正在某个远程服务器上运行。说IP-192.168.17.7 我使用以下命令运行测试:mvn-Denv=stage-Dmaven。测验失败ignore=true-DsuiteFile=src/test/java/Smoke。xml测试 现在我如何通过使用Jacoco代理获得J

  • 我正在为一个项目编写集成测试,在这个项目中,我正在进行HTTP调用,并测试它们是否成功。 因为我没有导入任何模块,也没有直接调用函数coverage.py报告为0%。 我想知道如何为此类集成HTTP请求测试生成覆盖率报告?

  • 这与预期的一样工作,并且能够列出集成测试的覆盖率。 我们有一个SonarQube服务器运行在版本上,有人知道当使用代理时,该版本的SonarQube是否能够显示集成测试覆盖率吗?

  • 问题内容: 我对大多数代码都有单元测试。但是我无法弄清楚如何为main包中的main()中的某些代码生成单元测试覆盖率。 主要功能非常简单。它基本上是一个选择块。它读取标志,然后调用另一个函数/执行某些操作,或仅在屏幕上打印帮助。但是,如果命令行选项设置不正确,它将退出并显示各种错误代码。因此,需要进行子过程测试。 我尝试了子流程测试技术,但修改了代码,以使其包括覆盖率标志: 这是原始代码: ht

  • 问题内容: 我们已经构建了一个REST API,该API公开了许多业务服务-业务服务可以调用其他平台/实用程序服务来执行数据库读取和写入,执行服务授权等。 我们已经将这些服务作为WAR文件部署在Tomcat中。 我们想使用集成测试套件来测试整个设置,我们也希望将其视为回归测试套件。 在此以及任何可以加速套件开发的工具上执行集成测试的最佳方法是什么?以下是我们认为需要解决的一些要求: 能够定义适用于