Задать вопрос

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

Добрый день. Кто-нибудь из вас использует coverage в pycharm? У меня сильное ощущение, что он реально показывает погоду на Марсе: запускаю проект, ставлю точку дебага в функции, обрабатывающей сообщение от клиента - дебаггер срабатывает. Запускаю в coverage-режиме - говорит, что функция обработки вообще не вызывается. Хотя сервер продолжает обрабатывать запросы. Очевидно, что с coverage что-то не так.
С тестами все еще веселее. В некоторых местах доходит до абсурда. Есть юнит-тест, один метод из двух строк. Одна, по мнению coverage, вызывается, вторая - нет.
f48f15efe7c2457d83219fd256abb4a5
Один из тестов вообще "не исполнялся":
3841bfc98589473ea8a58f92eafee254
Естественно, при этом все тесты пробежали, успешно:
a7be8101152046bc897dbf1910285ca8
А теперь десерт. Если закоментировать все тесты, и оставить лишь один, минорный, который тестирует только 2 функции в utils, то получим следующуюю картину:
ef13114dfa4246e1a569285ff79b22e7
То есть, даже несмотря на то, что код дергать просто нечему, он все равно "покрыт" (см. список файлов проекта). И даже комментарии умудрились как-то "выполниться". А где-то даже частично:
69c89be65b774286858926c726d309d0
Но если мы создадим маленький файлик, который делает ничего, то произойдет чудо:
c65e7959a5424aa4bb0b191aeebc4a39
Объясните, как эта магия работает? Я уже всю голову об стену сломал. Invalidate caches & restart, удалял все файлы на удаленном сервере (все работает через удаленный интерпретатор, до убунты в контейнере, в виртуалке). Даже контейнер сносил и раскатывал заново (с перенастройкой remote interpreter для выгрузки pycharm_helpers). Все папки с конфигами облазил в поисках кэша coverage. Ничего. Магия. Я не понимаю что происходит.
  • Вопрос задан
  • 1020 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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 версия.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект