python - coverage.py 针对 .pyc 文件

标签 python code-coverage coverage.py

我正在尝试使用coverage.py来查找针对服务器进程执行的功能测试的覆盖率,并使用.pyc文件进行部署。而且报道似乎不支持这一点。

为了解决这个问题,我创建了一个简单的 .py 模块,它调用其他 pyc 文件,我将这些文件的源代码放入单独的文件夹中:

coverage run --source=../src main.py

我收到的消息是

Coverage.py warning: No data was collected.

有什么指点吗?

最佳答案

事实上,coverage 3.6 目前不支持使用 pyc 文件运行。请参阅https://bitbucket.org/ned/coveragepy/issue/264/coverage-wont-run-pyc-files .

诀窍是创建一个使用 pyc 文件的简单“驱动程序”源文件,例如问题正文中的 main.py。在报告时,您需要将源文件和执行的 pyc 文件配对。

这里如何执行此操作(我的编译文件存储在当前文件夹(pyc)中,源文件存储在../src中):

[root@host pyc]# cat .coveragerc
[run]
parallel = true

[paths]
mysources =
    ../src
    /root/lucian/coverage/module1/pyc

[root@host pyc]# coverage run main.py
[root@host pyc]# coverage combine
[root@host pyc]# coverage report
Name                                                     Stmts   Miss  Cover
----------------------------------------------------------------------------
/root/lucian/coverage/module1/src/main                       1      0   100%
/root/lucian/coverage/module1/src/test_coverage_callee       3      0   100%
/root/lucian/coverage/module1/src/test_coverage_caller       3      0   100%
----------------------------------------------------------------------------
TOTAL                                                        7      0   100%

请注意,[paths] 下的第三行必须是完整路径(另一个覆盖缺陷)。

感谢 Ned 在报道邮件列表上帮助我解决了这个问题。

关于python - coverage.py 针对 .pyc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18854886/

相关文章:

python - 无法导入 umap : cannot import name 'structref' from 'numba.experimental'

python - 用于将 rst 转换为 html 的单个 py 文件

testing - 集成测试与测试覆盖率

java - 我能否在启用所有日志记录和禁用所有日志记录的情况下自动执行一次 JUnit 测试用例?

code-coverage - TFS "code coverage"仪表板图表中未显示 TFS 2010 服务器构建代码覆盖率

python - 单元测试python时的多个异常和代码覆盖

python - 如何使用 click、coverage.py 和 Tox 测试 Python CLI 程序?

python - 如何将入口点/控制台脚本添加到使用参数的 setup.py

python - 在 linux 上使用 pyodbc 在 nvarchar mssql 字段中插入 unicode 或 utf-8 字符

python - pytest-cov 从远程服务器获取自动化覆盖