Что означает результат теста? - PullRequest
0 голосов
/ 22 марта 2019

Я изучаю тестирование в Python , и теперь я использую pytest-cov .

Я пытаюсь запустить эту команду:

pytest --cov=myProj tests/ --cov-report term-missing 

после того, как тестирование завершено, я получил такой отчет:

       ----------- coverage: platform linux, python 3.6.7-final-0 -----------
Name                                                             Stmts   Miss  Cover   Missing
----------------------------------------------------------------------------------------------
myProject/__init__.py                                                0       0    100%
myProject/alert.py                                                  14      14      0%   1-21
myProject/api/__init__.py                                            1       0    100%
myProject/api/spaces/__init__.py                                     0       0    100%
myProject/api/spaces/admin.py                                      279     179     36%   154-223, 312-335, 351-398, 422-432, 505-515, 534-565, 591-697
myProject/api/spaces/global.py                                      89      66     26%   35-43, 47-69, 72-92, 96-124
myProject/api/spaces/inventory.py                                   79      79      0%   1-119
myProject/api/spaces/keyword.py                                    134     110     18%   33-42, 46-68, 72-93, 101-112, 116-134, 138-165, 168-190

Несколько вещей, которые меня все еще смущаютоб отчете, который я до сих пор не нашел в документации 1014 * о том, что такое Stmts , Miss , Cover и Отсутствует , если результат по Cover не равен 100%, это означает, что мой код все еще плох или что? ..

Ответы [ 2 ]

1 голос
/ 22 марта 2019
  • Stmts - означает общее количество строк кода, которое имеется в определенном файле.
  • Miss - общее количество строк, не охватываемыхunittest.
  • Cover - процент от всей строки кода, которая покрывается unittest.
  • Отсутствует - строки кодов, которые не охватываются.
1 голос
/ 22 марта 2019

Stmts относится к числу операторов в вашем коде.

Miss относится к числу операторов, которые не были выполнены.

Cover - тестовое покрытие, или (Stmts - Miss) / 100.

Missing содержит номера строк операторов Miss.

Если охват не равен 100%, это означает, что существуют части вашего кода, которые не охватываются вашими тестами, например:

def f(a, b):
    if a > 0:
        return a

    elif a == 0:
        return 0

    else:
        return b

def test_f():
    assert f(10, 10)

Приведенный выше тест войдет только в ветку a > 0 и, следовательно, охват тестом составит 33%.

Высокое покрытие не всегда хорошо (потому что простое покрытие кода не означает, что все случаи тестируются адекватно), но низкое покрытие часто плохо (потому что это означает, что ваши тесты даже не затрагивают части вашего кода).

...