Как мне интерпретировать результаты покрытия ветки Python cover.py?
Я использую coverage.py
измерить покрытие кода моих тестов. Я включил освещение филиала, но не могу понять смысл отчета.
Без покрытия филиала я получаю 100% покрытие:
Name Stmts Miss Cover Missing
------------------------------------------------------------
mylib/queries.py 44 0 100%
С включенным покрытием филиала:
Name Stmts Miss Branch BrPart Cover Missing
--------------------------------------------------------------------------
mylib/queries.py 44 1 20 3 94% 55, 21->10, 53->-48, 59->-58
Рассматриваемый источник может быть найден здесь.
21->10
имеет смысл; if
пункт никогда не оценивается как False
(прыжки назад к началу внешнего цикла for).
Тем не мение, 53->-48
а также 59->-58
заставь меня почесать голову. Что они имеют в виду?
1 ответ
Комментарий Дэна близок. Во-первых, отрицательные числа означают выход из функции, начинающейся с этого номера строки. Таким образом, -48 означает выход из функции, начиная со строки 48.
Проблема не в пустых циклах: эти ветви произошли бы, если бы циклы когда-либо заканчивались. Похоже, что они не сделали.
Кстати: Coverage.py 4.1b3 изменил некоторые из этих действий: они будут помечены как 53->exit, 59->exit
, Кроме того, сами ветви могут быть определены по-разному. Попробуйте.