【问题标题】:Integrating command-line generated python .coverage files with PyDev将命令行生成的 python .coverage 文件与 PyDev 集成
【发布时间】:2010-09-22 18:36:47
【问题描述】:

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

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

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

你知道怎么做吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 对我来说,它适用于一个包含大量测试套件的非常大的(20+ KLOC)项目。
    【解决方案2】:

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

    【讨论】:

    • 我希望我能将你们和 DzinX 的答案都设置为已接受,因为您对 .coverage 文件的洞察有助于解决我的部分问题。他是我问题的更直接答案,所以他会得到代表,但你也应该得到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多