Как настроить проверку покрытия PyCharm для распознавания.coveragerc?
у меня есть .coveragerc
файл в корне моего проекта. Это говорит coverage.py чтобы опустить каталоги миграции моего проекта:
[run]
omit = *migrations*
когда я запускаю coverage.py
в командной строке, конфигурация, которую я ввел .coveragerc повинуется.
однако, PyCharm не признает его. Есть ли место, которое я упускаю?
если окажется, что для PyCharm нет возможности распознать .coveragerc
, Я был бы рад даже просто способ опустить эти каталоги.
4 ответов
существует запрос функции для этого в https://youtrack.jetbrains.com/issue/PY-16945
я оказался в ситуации, когда мне это было очень нужно. Мой бег Трэвиса работал правильно, и комбинезон тоже, но я не мог заставить вещи работать в PyCharm.
что это немного hacky, но, надеюсь, это поможет людям :
В моем корневом каталоге проекта, я получил .coveragerc
[run]
omit = ./venv
concurrency = multiprocessing
parallel = True
source = HookTest
data_file = .cache/.coverage
и я "взломал" немного run_coverage.py из PyCharm : (pycharm-2016.3.2/helpers/coverage_runner/run_coverage.py )
начиная at
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 как глобальный env. Это может быть не лучшее из всех решений времени, но, по крайней мере, это позволяет мне больше не использовать вывод HTML при работе локально :)
существует другой способ заставить PyCharm игнорировать определенные файлы и папки:
на Settings
выбрать Project: ...
-Project Structure
. Здесь вы можете пометить папки как Excluded
или исключить файлы специально.
отчеты о покрытии кода PyCharm также игнорируют все эти исключенные файлы.
вы можете сделать PyCharm использовать .coveragerc
поместив его в рабочий каталог, из которого вы запускаете свои тесты.
запрос функции от https://youtrack.jetbrains.com/issue/PY-16945 реализован и работает в версии 2018.1.