Покрытие для полного pytest и одного приложения на django с помощью pytest разное.

Я создал проект на Django, и пишу тесткейсы в pytest. Теперь, чтобы использовать покрытие, я обычно использую cmd coverage run -m pytest. А чтобы проверить покрытие для конкретного приложения, я сообщаю/создаю html-файлы с помощью coverage html, так что это создаст html-файлы с красными и зелеными маркерами. Недавно я экспериментировал с различными комбинациями конфигураций покрытия и pytest и обнаружил, что при запуске полного pytest с покрытием типа coverage run -m pytest он не покроет все строки и пометит некоторые строки как отсутствующие, которые на самом деле выполняются во время работы pytest. Но когда я использую pytest с некоторым аргументом с охватом, например coverage run -m pytest accounts, он покрывает все идеально и не показывает отсутствующий файл, как я ожидал.

Я попробовал запустить весь проект с помощью coverage run -m pytest, а затем запустить coverage html, чтобы посмотреть в браузере. Я получил покрытие всех файлов, а чтобы увидеть покрытие конкретного приложения, например restaurant, я искал в верхнем правом окне поиска, и он показывает следующее.
Полное покрытие Pytest

Полное покрытие pytest с результатом поиска

Теперь мне нужно запустить покрытие для определенного приложения, поэтому я могу сделать это так: coverage run -m pytest restaurant так что это будет запущено только для приложения ресторана, затем я запустил coverage html, чтобы посмотреть в браузере. Ниже приведено изображение результатов.

Пытест приложения для ресторана
Pytest ресторанного приложения с результатом поиска

Оба варианта разные, хотя я одновременно запустил его.

Я уже использовал:

  • coverage erase перед каждым выполнением.
Вернуться на верх