Как я могу исключить южные миграции из отчетов о покрытии с помощьюcoverage.py

Я использую coverage.py, чтобы проверить тестовое покрытие моего приложения django. Однако, поскольку я использую South для миграции базы данных, все эти файлы отображаются с 0% и искажают общий процент.

Я уже пытался использовать --omit=*migrations* как в run, так и в report (и в обоих), но это не сработало.

Я пробовал версии 3.4 и последнюю версию Bitbucket от 20 декабря 2010 г. с тем же результатом.

Любые идеи, как я могу заставить Cover.py игнорировать папки миграции?


person Jonas Obrist    schedule 21.12.2010    source источник


Ответы (6)


Решение было:

[run]
omit = ../*migrations*
person Jonas Obrist    schedule 23.12.2010
comment
Я использую носовые тесты, которые не позволяют вам передавать все аргументы в cover.py, и это сработало и для меня. - person Evan R.; 11.09.2012

Вы должны иметь возможность сопоставить каталог миграции, чтобы пропустить эти файлы. Вы пробовали цитировать аргумент? В зависимости от вашей ОС и оболочки, эти звездочки могут быть преждевременно расширены. Попробуйте это так:

--omit='*migrations*'

В качестве альтернативы вы можете поместить переключатель в файл .coveragerc:

[run]
omit = *migrations*
person Ned Batchelder    schedule 22.12.2010

В последней версии django-jenkins появился новый параметр COVERAGE_WITH_MIGRATIONS, исключающий миграцию. . Его еще нет в PyPI, поэтому вам нужно установить его с pip/easy_install, указав URL-адрес git в качестве источника.

person DimmuR    schedule 03.12.2012

Пробовали ли вы django_coverage. Я думаю, что он справляется с такой проблемой.

person luc    schedule 21.12.2010

Это сработало для меня:

coverage run --source='.' --omit='*/migrations/*.py' manage.py test
person Torsten Engelbrecht    schedule 02.11.2017

пытаться:

coverage run --source=. manage.py test app_name

это игнорирует сторонний код и устраняет вашу проблему%

person user1422535    schedule 31.10.2014