繁体   English   中英

如何配置PyCharm的Coverage检查器来识别.coveragerc?

[英]How do I configure PyCharm's Coverage checker to recognize .coveragerc?

我在项目的根目录中有一个.coveragerc文件。 它告诉coverage.py省略项目的迁移目录:

[run]
omit = *migrations*

当我在命令行运行coverage.py时,会遵循我放入.coveragerc的配置。

但是,PyCharm不承认它。 有没有我失踪的环境?

如果事实证明PyCharm无法识别.coveragerc ,我会很高兴甚至只是一种省略这些目录的方法。

有一项功能请求,请访问https://youtrack.jetbrains.com/issue/PY-16945

有一种不同的方法可以让PyCharm忽略某些文件和文件夹:

Settings选择Project: ... - Project Structure 您可以在此处将文件夹标记为已Excluded或专门排除文件。

PyCharm的代码覆盖率报告也忽略了所有这些被排除的文件。

我发现自己处于需要这种情况的情况。 我的travis跑步正常,工作服也是如此,但我无法在PyCharm中使用。

事情有点hacky,但希望它会帮助人们:

在我的根项目目录中,我得到了一个.coveragerc

[run]
omit = ./venv
concurrency = multiprocessing
parallel = True
source = HookTest
data_file = .cache/.coverage

我“破解”了PyCharm的一点run_coverage.py :( pycharm-2016.3.2 / helpers / coverage_runner / run_coverage.py)

开始于

argv = []

替换所有内容:

argv = []
for arg in sys.argv:
    if arg.startswith('-m') and arg[2:]:
        argv.append(arg[2:])
    else:
        argv.append(arg)

cwd = os.getcwd()

rcfile = cwd + "/.coveragerc"
if os.path.exists(rcfile):
    print("Loading rcfile")
    i = argv.index("run")+1
    argv = argv[:i] + ["--rcfile={}".format(rcfile)] + argv[i:]

sys.argv = argv

try:
    main()
finally:
    if run_cov:
        os.chdir(cwd)
        if os.getenv('COVERAGE_COMBINE'):
            main(["combine"])
        main(["xml", "-o", coverage_file + ".xml", "--ignore-errors"])

为了使用python setup.py测试运行,我在PyCharm中创建了一个脚本,它使用了所述的setup.py,test has参数,COVERAGE_COMBINE为全局env。 它可能不是所有时间解决方案中最好的,但至少它允许我在本地工作时不再使用HTML输出:)

你可以让PyCharm将.coveragerc放入你运行测试的工作目录中。

来自https://youtrack.jetbrains.com/issue/PY-16945的功能请求已实施,可在2018.1版本中使用。

它在最后的Pycharm版本2018.3.4中不起作用。 我成功实现它的唯一方法是将run_coverage.py作为@PonteIneptique

这是我必须做的唯一修改:

run_xml = os.getenv('PYCHARM_RUN_COVERAGE_XML')
argv = ["xml", "-o", coverage_file + ".xml", "--ignore-errors"]
rcfile = cwd + "/.coveragerc"
if os.path.exists(rcfile):
    print("Loading rcfile\n")
    argv += ["--rcfile", rcfile]


if run_xml:
    os.chdir(cwd)
    main(argv)
else:
    try:
        main()
    finally:
        if run_cov:
            os.chdir(cwd)
            main(argv)

确保在配置中也设置.coveragerc文件的工作目录。 Pycharm编码器应该更新他们的代码,以便从GUI支持这个.coveragerc文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM