Процент покрытия кода при модульном тестировании

У меня есть класс, имеющий 3 метода (в python).

class MyClass:
    def A(self):
          .......
    def B(self):
         ........
    def C(self):
         ........

Я написал случай unit test только для одного метода A. Этот unit test охватывает каждую строку метода A. То есть у нас нет никаких if... else или каких-либо ветвящихся конструкций.

Каков будет процент покрытия кода?

Опять же, если я напишу еще один случай unit test для второго метода класса, охватывающего все строки. Каким будет процент покрытия кода сейчас?

Ответ 1

Я сам получил ответ: -)

Покрытие кода зависит от того, какой модуль или какие файлы вы используете для покрытия. Допустим, если мы запустим покрытие для одного файла так, как я сформулировал свой вопрос. Каждая строка каждого метода будет учитываться для покрытия кода.

Теперь, согласно моему вопросу, я охватываю только один метод, содержащий 20 строк. Другие 2 метода имеют еще 80 строк (всего 100 строк в 3 методах). Поэтому, если я запустил покрытие для своего файла. Я получаю код только 20%.

В python мы можем запускать (в терминале pycharm), например: покрытие run -m py.test my_file.py Чтобы запустить отчет, выполните команду: отчет о покрытии -m py.test my_file.py

Для запуска всего модуля (во всех пакетах) используйте: покрытие run -m py.test и отчет о покрытии -m py.test