Объединить файлы покрытия python?

Мне интересно, возможно ли объединить файлы coverage.xml в 1 файл, чтобы увидеть глобальный отчет в выводе HTML.

У меня есть моя unit/functional tests, работающая как 1 команда, и integration tests в качестве второй команды. Это означает, что мой охват для unit/functional tests переопределяется unit tests.

Было бы здорово, если бы у меня было какое-то решение для этой проблемы, главным образом путем объединения этих файлов в 1 файл.

Ответ 1

Я нашел другое решение. Я использовал combine функцию (читать здесь) Поэтому я запускаю свое покрытие как: coverage run -p, а затем я делаю coverage combine.

Это все. Он генерирует 1 комбинированный отчет.

Ответ 2

Невозможно объединить файлы .xml, но вы можете объединить файлы необработанных данных. Ваш рабочий процесс будет выглядеть следующим образом:

$ COVERAGE_FILE=.coverage_func coverage run the_functional_tests.py
$ COVERAGE_FILE=.coverage_inte coverage run the_integration_tests.py
$ coverage combine
$ coverage xml

Ответ 3

Вы можете достичь того же результата, используя опцию добавления. Предположим, что вы запустили покрытие на трех сценариях Python. После первого покрытия используйте -a для добавления.

coverage run first.py
coverage run -a second.py
coverage run -a third.py

Распечатать отчет

coverage report -m

Выход: Отчет

Name             Stmts   Miss  Cover   Missing
----------------------------------------------
first.py           97      1    99%   95
second.py            1      0   100%
third.py            10      0   100%
----------------------------------------------
TOTAL               108      1    99%

Ответ 4

Если ваш исходный код находится в каталоге с именем my_project, вы также можете сделать это, если вы включили pytest и pytest-cov в виртуальную среду:

pytest --cov-report html --cov=my_project unit_tests
pytest --cov-report html --cov=my_project --cov-append functional_tests

--cov-append добавит информацию о покрытии функционального теста в файл покрытия, который был создан при запуске модульных тестов.

Ответ 5

Используйте опцию -a с командой покрытия покрытия. Например: пробег покрытия -a test1.py Это добавит результаты в существующий файл покрытия, подтвердите то же самое, выполнив отчет о покрытии.