gpt4 book ai didi

python - coverage.py 是否正确显示 python 绑定(bind)的测试覆盖率?

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:15 25 4
gpt4 key购买 nike

我对我的功能测试的测试范围很感兴趣。这些测试是测试通过 SWIG 编译的模块代码。

我试过运行:

coverage run --source=/path/to/module/__init__py allMyTests.py

coverage run --source=/path/to/module/__init__py partOfTests.py

在每种情况下,它都保存了相同的信息,即使他们从模块中使用的测试数量和代码量大不相同。它似乎没有像我预期的那样工作,但也许我做错了什么。

我能找出 python 绑定(bind)代码的测试覆盖率吗?

它不必与 coverage.py 工具一起使用。

最佳答案

覆盖率用于确定正在测试的代码比例。因此,如果两个测试文件在代码量和测试数量上完全不同,那么如果它们测试 API 的相同部分,它们可能仍会导致相同的覆盖率数据。

更新:

听起来您想测试 Python 扩展 DLL 中 C/C++ 代码的覆盖率。由于扩展是 C/C++,覆盖模块不能进入其中。该模块可以告诉您扩展中的每个 Python 函数是否从测试中的某个地方被调用。

也就是说,任何可以按需处理动态链接 DLL 加载的 C/C++ 代码覆盖工具都能够满足您的需求。最终,您的脚本由最终加载您的 DLL 的 python.exe 运行。如果 DLL 是在 Visual C++ 2010 中编写的,并且您可以找到适用于该编译器的 C/C++ 代码覆盖率工具,那么您可以告诉 Visual Studio 附加到 python 进程,并为感兴趣的 DLL 提供覆盖率统计信息(我从来没有这样做过,但我认为有一种方法可以告诉覆盖工具 exe 的哪些部分——在这种情况下是你的 DLL——感兴趣)。

因此,我会深入研究为您的 C++ 编译器寻找合适的 C/C++ 代码覆盖工具。就像在 Windows 上这个 SO post Code coverage in Visual Studio 2010 for native C++ exe/dll表示有这样的工具。

关于python - coverage.py 是否正确显示 python 绑定(bind)的测试覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com