将命令行生成的python .coverage文件与PyDev集成

时间:2008-11-17 23:04:50

标签: python eclipse code-coverage pydev python-coverage

我的构建环境配置为在命令行编译,运行和创建coverage文件(使用Ned Batchelder coverage.py工具)。

我正在使用Eclipse和PyDev作为我的编辑器,但由于实际原因,我将整个构建环境转换为Eclipse是不可能/方便的(因此直接从IDE生成覆盖数据,因为它设计为做)

PyDev似乎使用相同的覆盖工具(或与其非常相似的东西)来生成其覆盖信息,所以我猜测应该有一些方法将我的外部覆盖文件集成到Eclipse / PyDev中。

关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:3)

我对PyDev集成coverage.py(或者甚至使用coverage.py)一无所知,但.coverage文件非常简单。他们是marhsal'ed词典。

我没有测试过这段代码,但您可以尝试将两个.coverage文件合并为一个:

import marshal
c1_dict = marshal.load(open(file_name_1, 'rb'))
c2_dict = marshal.load(open(file_name_2, 'rb'))
c1_dict.update(c2_dict)
marshal.dump(c1_dict, open(file_name_out, 'wb'))

答案 1 :(得分:3)

我不久前需要这样的东西,当PyDev仍然使用较旧版本的coverage.py而不是可从脚本创建者页面访问的版本。

我所做的是检测PyDev保存他的.coverage文件的位置。对我来说是:

 C:\Users\Admin\workspace\.metadata\.plugins\org.python.pydev.debug\.coverage

然后我从一个单独的脚本手动运行新版本的coverage.py并告诉它将其.coverage文件保存在PyDev保存它的地方。我不记得coverage.py是否存在命令行参数,或者我是否只是用脚本复制了.coverage文件,但之后,如果您只是打开代码覆盖率结果视图< / strong>并单击刷新覆盖率信息!,PyDev将很好地处理数据,就好像它自己生成文件一样。