代码之家  ›  专栏  ›  技术社区  ›  Kena

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

  •  2
  • Kena  · 技术社区  · 16 年前

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

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

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

    你知道怎么做吗?

    2 回复  |  直到 9 年前
        1
  •  3
  •   Ned Batchelder    16 年前

    不久前,当PyDev仍然使用旧版本的 coverage.py 而不是从脚本创建者的页面访问的。

    我所做的就是检测PyDev在哪里保存他的 .coverage 文件。对我来说,这是:

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

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

        2
  •  3
  •   Dzinx    16 年前

    我对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'))