Coverage в pycharm показывает погоду на марсе?

Добрый день. Кто-нибудь из вас использует coverage в pycharm? У меня сильное ощущение, что он реально показывает погоду на Марсе: запускаю проект, ставлю точку дебага в функции, обрабатывающей сообщение от клиента - дебаггер срабатывает. Запускаю в coverage-режиме - говорит, что функция обработки вообще не вызывается. Хотя сервер продолжает обрабатывать запросы. Очевидно, что с coverage что-то не так.
С тестами все еще веселее. В некоторых местах доходит до абсурда. Есть юнит-тест, один метод из двух строк. Одна, по мнению coverage, вызывается, вторая - нет.
f48f15efe7c2457d83219fd256abb4a5
Один из тестов вообще "не исполнялся":
3841bfc98589473ea8a58f92eafee254
Естественно, при этом все тесты пробежали, успешно:
a7be8101152046bc897dbf1910285ca8
А теперь десерт. Если закоментировать все тесты, и оставить лишь один, минорный, который тестирует только 2 функции в utils, то получим следующуюю картину:
ef13114dfa4246e1a569285ff79b22e7
То есть, даже несмотря на то, что код дергать просто нечему, он все равно "покрыт" (см. список файлов проекта). И даже комментарии умудрились как-то "выполниться". А где-то даже частично:
69c89be65b774286858926c726d309d0
Но если мы создадим маленький файлик, который делает ничего, то произойдет чудо:
c65e7959a5424aa4bb0b191aeebc4a39
Объясните, как эта магия работает? Я уже всю голову об стену сломал. Invalidate caches & restart, удалял все файлы на удаленном сервере (все работает через удаленный интерпретатор, до убунты в контейнере, в виртуалке). Даже контейнер сносил и раскатывал заново (с перенастройкой remote interpreter для выгрузки pycharm_helpers). Все папки с конфигами облазил в поисках кэша coverage. Ничего. Магия. Я не понимаю что происходит.
  • Вопрос задан
  • 1012 просмотров
Пригласить эксперта
Ответы на вопрос 3
maxclax
@maxclax
Под coverage точки дебага не нужны. Куда отчет падает с покрытием? Возможно он битый...
Рекомендую сделать полный переход с testcase на py.test.
Ответ написан
Комментировать
Shmele
@Shmele
Python developer
Могу сказать, что с py.test-ом coverege в PyCharm работает корректно. Совпадает с результатами на Jenkins-е.
Но у меня проекты локально запускаются, а не удалённо в контейнере. Может быть в этом дело. Попробуйте локально тест провести.
С TestCases не проверял.
Ответ написан
Комментировать
nikolay_karelin
@nikolay_karelin
Ведущий разработчик, пишу на Python, Tcl, Matlab
А что говорят разработчики? На такое ИМХО можно баг критический завести, даже если Community версия.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы