我正在通过 Visual Studio Code 对 Golang 项目进行单元测试,我使用的依赖项之一称为 mockery
。它的工作原理是在找到的包中创建目标 Golang 接口(interface)的模拟。因此,尽管我可以发誓测试上述包中的所有内容,但我的测试覆盖率仅为 58%。然而,当我从包中取出模拟(事实证明我不需要它)时,我的测试覆盖率(确实如雨)飙升至我预期的 97.9%。
有没有办法告诉 Visual Studio Code“嘿,不要在包覆盖率计算中包含 mock 模拟(以 mock_
开头)”?
最佳答案
解决方案是使用mockery -inpkg 和-testonly 标志,以便生成的模拟将转到定义接口(interface)的原始包。此外,生成的文件将具有 _test.go 后缀,因此在构建程序时,代码覆盖率工具和编译器将忽略它们。
关于go - 如何从 Visual Studio Code 中的包覆盖范围中排除生成的模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51847412/