问题描述
我在项目的根目录中有一个.coveragerc
文件。
它告诉coverage.py省略项目的迁移目录:
[run]
omit = *migrations*
当我在命令行运行coverage.py
时,会遵循我放入.coveragerc的配置。
但是,PyCharm不承认它。 有没有我失踪的环境?
如果事实证明PyCharm无法识别.coveragerc
,我会很高兴甚至只是一种省略这些目录的方法。
1楼
有一项功能请求,请访问
2楼
有一种不同的方法可以让PyCharm忽略某些文件和文件夹:
在Settings
选择Project: ...
- Project Structure
。
您可以在此处将文件夹标记为已Excluded
或专门排除文件。
PyCharm的代码覆盖率报告也忽略了所有这些被排除的文件。
3楼
我发现自己处于需要这种情况的情况。 我的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输出:)
4楼
你可以让PyCharm将.coveragerc
放入你运行测试的工作目录中。
来自的功能请求已实施,可在2018.1版本中使用。
5楼
它在最后的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文件。