lcf*_*cfd 7 python code-coverage coverage.py
我正在尝试使用coverage.py来查找针对使用.pyc文件部署的服务器进程执行的功能测试的覆盖范围.似乎覆盖范围不支持这一点.
为了克服这个问题,我创建了一个简单的.py模块来调用其他pyc文件,我将这些文件提供给一个单独的文件夹:
coverage run --source=../src main.py
Run Code Online (Sandbox Code Playgroud)
我得到的消息是
Coverage.py warning: No data was collected.
Run Code Online (Sandbox Code Playgroud)
有什么指针吗?
事实上,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%
Run Code Online (Sandbox Code Playgroud)
请注意,[paths] 下的第三行必须是完整路径(另一个覆盖缺陷)。
感谢内德在报道邮件列表上帮助我解决了这个问题。
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |