/ / Покритие на Python: изпълнява повече от 1 тест - питън, покритие с код

Покритие на Python: изпълнява повече от 1 тест - питън, кодово покритие

Чудя се дали има начин да се зададе повече от 1 тестов файл, който да се изпълнява, когато се използва конфигурация на покритие на Python (.coveragerc) файл. Ако не е от конфигурационния файл, може би е възможно при стартиране от командния ред? Понастоящем за три различни файла на тестовите единици използвам:

coverage run test1
coverage run -a test2
coverage run -a test3

Може ли да е по-кратък? Благодаря

Отговори:

1 за отговор № 1

Редактиране (2017-09-25): Както посочва @ ned-batchelder в коментарите, предпочитайте pytest над нос ако стартирате нов проект, тъй като носът не се поддържа.

Като погледнем Документация за покритие, изглежда, че това е единственият режим, който coverage поддържа изпълнява специфичен модул с всяка команда.

Можете да използвате тестова рамка, като нос pytest, за да стартирате всичките си тестове и да докладвате процента успех / неуспех и общото покритие.

1) Инсталирайте pytest, покритие и pytest-cov

pip install pytest
pip install coverage
pip install pytest-cov

2) Стартирайте pytest commmand, използвайки --cov флаг за всеки модул или пакет, чието покритие трябва да се измери. Например:

pytest --cov=foo --cov=bar

Изходен изход:

Name     Stmts   Miss  Cover   Missing
--------------------------------------
bar.py       3      1    67%   5
foo.py       6      2    67%   9-11
--------------------------------------
TOTAL        9      3    67%

pytest ще намерите вашите тестове, ако съответстват на модела test_*.py (или други, повече информация тук).

Открийте общото използване на кода nose

1) Инсталирайте носа и покритието

pip install nose
pip install coverage

2) Стартирайте nosetests команда, с --with-coverage флаг

nosetests --with-coverage

Примерни изходни данни (когато има един модул foo.py):

Name     Stmts   Miss  Cover
----------------------------
foo.py       6      2    67%
----------------------------------------------------------------------
Ran 1 test in 0.008s

OK

nosetests можете автоматично да намерите вашите тестове, използвайки някои евристики. Например, ако поставите тестовете си в имената на файловете, които започват с testи създайте вашите тестове чрез наследяване от unittest.TestCase, nosetests ще ги намери. Повече информация тук. </ И>