我一直在玩coverage.py,但似乎无法让它为__main__
模块收集覆盖范围。
我在 Windows 上,喜欢使用 IDLE 破解脚本。edit-hit-F5 循环非常方便、快速、有趣。不幸的是,coverage.py 似乎不能(或愿意)收集主模块的覆盖率——在下面的代码中,它报告没有收集任何数据。我的代码如下所示:
import coverage
cov = coverage.coverage()
cov.start()
def CodeUnderTest():
print 'do stuff'
return True
assert CodeUnderTest()
cov.stop()
cov.save()
cov.html_report()
有人有想法么?我尝试了各种覆盖选项,但无济于事。似乎 IDLE 创建的环境对覆盖不是很友好,因为sys.modules['__main__']
指向 idle.pyw 文件,而不是它正在运行的文件。