Python 针对.pyc文件的coverage.py
我试图使用coverage.py来查找针对服务器进程执行的功能测试的覆盖率,这些测试是使用.pyc文件部署的。而且似乎覆盖范围并不支持这一点 为了解决这个问题,我创建了一个简单的.py模块,用于调用其他pyc文件,并将其源代码提供到一个单独的文件夹中:Python 针对.pyc文件的coverage.py,python,code-coverage,coverage.py,Python,Code Coverage,Coverage.py,我试图使用coverage.py来查找针对服务器进程执行的功能测试的覆盖率,这些测试是使用.pyc文件部署的。而且似乎覆盖范围并不支持这一点 为了解决这个问题,我创建了一个简单的.py模块,用于调用其他pyc文件,并将其源代码提供到一个单独的文件夹中: coverage run --source=../src main.py 我得到的信息是 Coverage.py warning: No data was collected. 有任何指针吗?当前,coverage.py必须有权访问.py(源
coverage run --source=../src main.py
我得到的信息是
Coverage.py warning: No data was collected.
有任何指针吗?当前,coverage.py必须有权访问.py(源)文件才能进行报告。Ned告诉我,将来有一张票可以实现这一点。事实上,coverage 3.6目前不支持使用pyc文件运行。看 诀窍是创建一个使用pyc文件的简单“驱动程序”源文件,如问题正文中的main.py。在报告时,您需要将源文件和执行的pyc文件配对 下面介绍如何执行此操作(我编译的文件存储在当前文件夹(pyc)中,源文件存储在../src中): 注意,[paths]下的第三行必须是完整路径(另一个覆盖缺陷)
感谢Ned帮助我在coverage邮件列表中解决了这个问题。事实上,see现在已经修复。我可以问一下这个问题是在哪个版本中修复的吗?
[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%