У меня есть сервисный код на python.Для функциональных тестов я запускаю локальные тесты для того же сервиса, встроенного в Docker-контейнер, потому что я хочу протестировать вызов API REST или сообщение Rabbitmq и т. Д.
Шаг 1.
$ docker-compose.yml
third_party_service_1:
...
third_party_service_2:
...
my_service:
build:
context: .
...
Шаг 2.
$ docker-compose up --build -d
Шаг 3.
$ coverage run -m pytest tests/functional
Очевидно, охватне работает, потому что код в образе докера является кодом, скопированным из локального.
Есть ли способ получить покрытие в этой ситуации?
Спасибо!
РЕДАКТИРОВАТЬ: Я имею в виду, я не понимаюпокрытие из функциональных тестов, потому что код, который выполняется из-за тестов, не является локальным кодом, в котором я выполняю команды покрытия и pytest.Функциональные тесты знают, что они должны атаковать образ докера, который я создал.Итак, что касается покрытия, вы запускаете тесты для сторонней службы, потому что она не может знать, какой код выполняется.
---------------------
| LOCAL |
| my_service code |
| |
| I run: |
| $ coverage run... |
---------------------
---------------------
| DOCKER |
| my_service code |
| (up&running) |
---------------------