В проекте, над которым я сейчас работаю, у меня есть несколько моих коллег, которые написали модульные тесты, используя пакет unittest, а некоторые - пакет pytest. Когда я запускаю модульные тесты в конвейере CI, я вызываю все модульные тесты. Но теперь нам также нужно получить общий пакет покрытия кода. Итак, я обновил скрипт вызова модульного теста, добавив покрытие (см. Фрагмент скрипта ниже). Но я вижу, что когда я запускаю сценарий ниже, я получаю результат покрытия coverage run -a -m pytest -v -m unittests
(строка 7 ниже), только не тесты, запущенные ранее. Но если я удалю строку coverage run -a -m pytest -v -m unittests
(строка 7 ниже), я получу результат предыдущих модульных тестов.
#!/bin/bash
set -xe
coverage run -m unittest test_a.py
coverage run -a -m unittest test_b.py
coverage run -a -m unittest test_c.py
...
cd process/tests/
coverage run -a -m pytest -v -m unittests
coverage report -m --omit=*/venv/*
охват сообщает только результат coverage run -a -m pytest -v -m unittests
, игнорируя ранее запущенные модульные тесты.
Могу ли я узнать, как получить единый отчет для всех модульных тестов в приведенном выше сценарии?