Добрый день. Кто-нибудь из вас использует coverage в pycharm? У меня сильное ощущение, что он реально показывает погоду на Марсе: запускаю проект, ставлю точку дебага в функции, обрабатывающей сообщение от клиента - дебаггер срабатывает. Запускаю в coverage-режиме - говорит, что функция обработки вообще не вызывается. Хотя сервер продолжает обрабатывать запросы. Очевидно, что с coverage что-то не так.
С тестами все еще веселее. В некоторых местах доходит до абсурда. Есть юнит-тест, один метод из двух строк. Одна, по мнению coverage, вызывается, вторая - нет.
Один из тестов вообще "не исполнялся":
Естественно, при этом все тесты пробежали, успешно:
А теперь десерт. Если закоментировать все тесты, и оставить лишь один, минорный, который тестирует только 2 функции в utils, то получим следующуюю картину:
То есть, даже несмотря на то, что код дергать просто нечему, он все равно "покрыт" (см. список файлов проекта). И даже комментарии умудрились как-то "выполниться". А где-то даже частично:
Но если мы создадим маленький файлик, который делает ничего, то произойдет чудо:
Объясните, как эта магия работает? Я уже всю голову об стену сломал. Invalidate caches & restart, удалял все файлы на удаленном сервере (все работает через удаленный интерпретатор, до убунты в контейнере, в виртуалке). Даже контейнер сносил и раскатывал заново (с перенастройкой remote interpreter для выгрузки pycharm_helpers). Все папки с конфигами облазил в поисках кэша coverage. Ничего. Магия. Я не понимаю что происходит.