如何配置 PyCharm 的覆盖率检查器来识别 .coveragerc?
How do I configure PyCharm's Coverage checker to recognize .coveragerc?
我的项目根目录中有一个 .coveragerc
文件。它告诉 coverage.py 省略我项目的迁移目录:
[run]
omit = *migrations*
当我在命令行 运行 coverage.py
时,会遵守我放入 .coveragerc 的配置。
但是,PyCharm不认识。是否有我缺少的设置?
如果事实证明 PyCharm 无法识别 .coveragerc
,我会很高兴能够忽略这些目录。
有一个功能请求
我发现自己非常需要这个。我的 travis 运行 运行 正确,工作服也正确,但我无法在 PyCharm 中正常工作。
这个东西有点hacky,但希望它能帮助人们:
在我的根项目目录中,我得到了一个.coveragerc
[run]
omit = ./venv
concurrency = multiprocessing
parallel = True
source = HookTest
data_file = .cache/.coverage
而我 "hacked" 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,测试有参数,和 COVERAGE_COMBINE 作为全局环境。它可能不是有史以来最好的解决方案,但至少它允许我在本地工作时不再使用 HTML 输出:)
有一种不同的方法可以让 PyCharm 忽略某些文件和文件夹:
在 Settings
中选择 Project: ...
- Project Structure
。您可以在此处将文件夹标记为 Excluded
或专门排除文件。
PyCharm 的代码覆盖率报告也忽略了所有那些被排除的文件。
您可以 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 文件。
我的项目根目录中有一个 .coveragerc
文件。它告诉 coverage.py 省略我项目的迁移目录:
[run]
omit = *migrations*
当我在命令行 运行 coverage.py
时,会遵守我放入 .coveragerc 的配置。
但是,PyCharm不认识。是否有我缺少的设置?
如果事实证明 PyCharm 无法识别 .coveragerc
,我会很高兴能够忽略这些目录。
我发现自己非常需要这个。我的 travis 运行 运行 正确,工作服也正确,但我无法在 PyCharm 中正常工作。
这个东西有点hacky,但希望它能帮助人们:
在我的根项目目录中,我得到了一个.coveragerc
[run]
omit = ./venv
concurrency = multiprocessing
parallel = True
source = HookTest
data_file = .cache/.coverage
而我 "hacked" 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,测试有参数,和 COVERAGE_COMBINE 作为全局环境。它可能不是有史以来最好的解决方案,但至少它允许我在本地工作时不再使用 HTML 输出:)
有一种不同的方法可以让 PyCharm 忽略某些文件和文件夹:
在 Settings
中选择 Project: ...
- Project Structure
。您可以在此处将文件夹标记为 Excluded
或专门排除文件。
PyCharm 的代码覆盖率报告也忽略了所有那些被排除的文件。
您可以 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 文件。