我的测试与我的代码不在同一个程序包中。我发现这是一种使用很多测试文件来组织代码库的简洁方法,而且我读到,将测试限制为通过包的公共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% 分支覆盖率 我已经设定好了 我已经尝试了\和向前斜杠-这没有区别 有什么想法吗? 编辑 根据
我是Python的新手,我已经为我的类编写了测试用例,我正在使用python-m pytest--cov=azuread_api来获得代码覆盖率。 我如何获得哪些行是错过了测试例如在aadadapter.py文件 谢谢