将命令行生成的python .coverage文件与PyDev集成
我的构建环境已经设置好,可以在命令行中编译、运行并生成覆盖率文件(我使用的是Ned Batchelder的coverage.py工具)。
我在用Eclipse配合PyDev作为我的编辑器,但出于实际考虑,我不能也不方便把整个构建环境都转到Eclipse上(这样就不能直接从IDE生成覆盖率数据了,因为它是这样设计的)。
PyDev似乎也在使用同样的覆盖工具(或者是类似的工具)来生成覆盖信息,所以我在想,应该有办法把我外部的覆盖文件整合进Eclipse/PyDev里。
有没有人知道怎么做呢?
2 个回答
3
我对PyDev如何集成coverage.py(或者说它是否使用coverage.py)并不了解,但.coverage文件其实很简单。它们是经过处理的字典。
我没有测试过这段代码,不过你可以试试这个方法,把两个.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'))
3
我之前正好需要这样的东西,那时候PyDev用的coverage.py
版本比脚本作者页面上提供的旧。
我做的就是找出PyDev把.coverage
文件保存在哪里。对我来说,它的位置是:
C:\Users\Admin\workspace\.metadata\.plugins\org.python.pydev.debug\.coverage
然后我手动从一个单独的脚本运行了一个新版本的coverage.py
,并告诉它把.coverage
文件保存到PyDev保存的那个地方。我记不清楚是不是用命令行参数给coverage.py
传了这个位置,还是我只是用脚本复制了.coverage
文件,但之后只要打开代码覆盖率结果视图,点击刷新覆盖信息!,PyDev就会像自己生成了这个文件一样,顺利处理这些数据。