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

当测试在另一个软件包中时,获取覆盖率统计信息

陆文斌
2023-03-14
问题内容

我的测试与我的代码不在同一个程序包中。我发现这是一种使用很多测试文件来组织代码库的简洁方法,而且我读到,将测试限制为通过包的公共api进行交互是一个好主意。

所以看起来像这样:

api_client:
    Client.go
    ArtistService.go
    ...
api_client_tests
    ArtistService.Events_test.go
    ArtistService.Info_test.go
    UtilityFunction.go
    ...

我可以打字go test bandsintown-api/api_client_tests -cover 看看0.181s coverage: 100.0% of statements。但这实际上只是对我的报道UtilityFunction.go(就像我跑步go test bandsintown-api/api_client_tests -cover=cover.out和 时所说的那样go tool cover -html=cover.out)。

有什么方法可以将实际api_client测试中的包装覆盖,而不必将所有包装放到同一包装中?


问题答案:

正如评论中提到的,您可以运行

go test -cover -coverpkg "api_client" "api_client_tests"

进行覆盖测试。

但是将代码文件从测试文件拆分到其他目录并不是Go的方法。

我想您想进行一次黑盒测试(包私有的东西在外部都无法访问,即使对于测试也是如此)。

为此,可以在另一个程序包中进行测试(不移动文件)。例:

api_client.go

package api_client

// will not be accessible outside of the package
var privateVar = 10

func Method() {
}

api_client_test.go

package api_client_tests

import "testing"

func TestClient(t *testing.T) {
    Method()
}


 类似资料:
  • 我有一个詹金斯声纳装置,还有一个maven项目。这个maven项目只有一个pom,但包含java、javascript、html等。所以对于sonar来说,它是一个多模块项目,所以我可以获得每个部分的统计数据。 我们还希望获得项目的代码覆盖率分析,这意味着我们需要在声纳分析之前运行测试并导出它们(至少从我收集的声纳跑步者不能做这种类型的分析)。 因此,我把詹金斯的工作设置为第一步做,然后运行调用独

  • 11.3. 测试覆盖率 就其性质而言,测试不可能是完整的。计算机科学家Edsger Dijkstra曾说过:“测试能证明缺陷存在,而无法证明没有缺陷。”再多的测试也不能证明一个程序没有BUG。在最好的情况下,测试可以增强我们的信心:代码在很多重要场景下是可以正常工作的。 对待测程序执行的测试的程度称为测试的覆盖率。测试覆盖率并不能量化——即使最简单的程序的动态也是难以精确测量的——但是有启发式方法

  • [在这里输入图像描述][1][在这里输入图像描述][2]我知道很多人都有类似的问题。我展示了很多答案,尝试了在声纳网站上给出的示例代码。那个样品工作得很好。我还显示以下链接 maven 3.0.5 请帮我解决这个问题。 下面是父模块pom文件 我真的觉得这是jacoco或Sonarqube的bug。可能它不兼容Java8之类的东西。我几乎什么都试过了。sonar java插件2.5.1不推荐使用许

  • 我正在更新一个继承的存储库,它的测试覆盖率很差。回购本身是一个pytest插件。我已经改变了回购使用随着,并转换原始测试使用作为测试插件时pytest留档建议。 测试和毒物构建等。工作得很好。然而,覆盖是报告错误的错失,例如类定义、导入等。这是因为代码本身作为pytest实例化的一部分被导入,直到测试真正开始才被“覆盖”。 我已经阅读了pytest文档、pytest cov和coverage文档以

  • 与SonarQube类似,它不会通过Gradle显示每个文件的详细报告,但不会显示dupe。 声纳Qube版本3.7.4 Gradle版本2.1 运行会生成一个文件test.execSonar会拾取该文件 然而,在刷新上述项目时,它显示覆盖率为0% 单元测试覆盖率 0.0% 0.0% 线路覆盖率 0.0% 分支覆盖率 我已经设定好了 我已经尝试了\和向前斜杠-这没有区别 有什么想法吗? 编辑 根据

  • v2.0 Codecov报表 , 从2017-12-29后开始统计 测试覆盖率为 : , 可以从 https://codecov.io/gh/apache/dubbo 页面得到覆盖率报表 v1.0 基于 2.0.12 版本,统计于 2012-02-03