coverage.py对.pyc文件

时间:2013-09-17 16:17:46

标签: python code-coverage coverage.py

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

为了克服这个问题,我创建了一个简单的.py模块,调用其他pyc文件,我将这些文件提供给一个单独的文件夹:

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

我收到的消息是

Coverage.py warning: No data was collected.

任何指针?

2 个答案:

答案 0 :(得分:1)

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

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

这里如何做到这一点(我的编译文件存储在../ src中的当前文件夹(pyc)和源文件中):

[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]下的第3行必须是完整路径(另一个覆盖缺陷)。

感谢Ned帮助我完成了覆盖邮件列表。

答案 1 :(得分:0)

目前,coverage.py必须能够访问.py(源)文件才能进行报告。奈德告诉我,将来有一张票可以使这成为可能。