Тесты на носу игнорируют минимальное покрытие при выходе из-за неудачного теста? - PullRequest
0 голосов
/ 06 сентября 2018

На моем тестовом средстве, чтобы определить, проходит ли ветка git или нет, я тестирую свой python так:

nosetests -x --with-coverage ${PACKAGE} --cover-min-percentage=80

-x (выход при первом сбое) - это новое дополнение, так как мы хотим немедленно завершить сборку, если какой-либо модульный тест не пройден. Однако, если ранний тест не пройден, и мы завершаем тесты на нос, ложно говорится, что минимальное покрытие не было выполнено, если некоторые ранние пакеты имели низкое покрытие, потому что не смогли покрыть все.

Как сделать так, чтобы проверка покрытия была отменена / проигнорирована, если какие-либо тесты не пройдены?

1 Ответ

0 голосов
/ 07 сентября 2018

Как я могу прервать / проигнорировать проверку покрытия, если какой-либо тест не пройден?

Используйте coverage для вызова nose2 или nosetests, где -F в nose2 означает, что быстрый сбой такой же, как и -x в nosetests.

coverage run /usr/bin/nose2-2.7 -s tests -F --plugin nose2.plugins.junitxml -C --config nose2.cfg.2 --verbose --junit-xml

Сообщать только в том случае, если вышеприведенные тесты пройдены успешно или код завершения равен 2, что не удалось из-за покрытия меньше порогового значения. код выхода 1 будет пропущен.

coverage report -m

и / или .coveragerc

[report]
fail_under 80.55
precision 2
skip_covered False

https://coverage.readthedocs.io/en/coverage-4.5.1a/config.html

...