2010-12-21 4 views
24

J'utilise coverage.py pour vérifier la couverture de test de mon application django. Cependant, puisque j'utilise South pour mes migrations de base de données, tous ces fichiers apparaissent avec 0% et gâchent le pourcentage global.Comment puis-je exclure les migrations Sud des rapports de couverture à l'aide de coverage.py

J'ai déjà essayé d'utiliser --omit=*migrations* à la fois dans run et report (et les deux) mais cela n'a pas fonctionné.

J'ai essayé les versions 3.4 et dernière révision de Bitbucket à partir du 20 décembre 2010 avec le même résultat.

Des idées sur comment je peux obtenir coverage.py ignorer réellement les dossiers de migrations?

Répondre

19

Vous devriez être capable de faire une correspondance avec le répertoire des migrations pour omettre ces fichiers. Avez-vous essayé de citer l'argument? Selon votre système d'exploitation et votre shell, il se peut que ces astérisques soient développés prématurément. Essayez comme ceci:

--omit='*migrations*' 

Alternativement, vous pouvez mettre le commutateur dans un fichier .coveragerc:

[run] 
omit = *migrations* 
25

La solution était:

[run] 
omit = ../*migrations* 
+0

D'accord, cela a fonctionné pour moi aussi. – slacy

+0

J'utilise des tests de nez qui ne vous permettent pas de passer tous les arguments dans coverage.py et cela a fonctionné pour moi aussi. –

2

La dernière version de django-jenkins a une nouvelle option COVERAGE_WITH_MIGRATIONS qui exclurait les migrations. Ce n'est pas encore dans PyPI donc vous devez l'installer avec pip/easy_install specyfing url git url comme source.

+0

Ceci est maintenant la solution. – 0atman

-3

essayer:

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

ignore ce code tiers et fixe votre problème%

0

Cela a fonctionné pour moi:

coverage run --source='.' --omit='*/migrations/*.py' manage.py test 
Questions connexes