Покрытие для полного 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
перед каждым выполнением.