Как настроить проверку покрытия 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.