Покрытие pytest - количество попаданий в строку

У меня есть файл, test_basic.py:

class TestCalculator():
    def test_calculator(self):
        from basic import Basic
        basic_obj = Basic()
        sum_nums = basic_obj.add_num(1,2)
        diff_num = basic_obj.sub_num(3,5)
        prod_num = basic_obj.prod_num(5,5)
        quo_num = basic_obj.div_num(3,0)

У меня есть другой файл, basic.py:

class Basic():
    def __init__(self):
        print ('Basic initialized')
    def add_num(self, num1, num2):
        counter = 0
        while (counter < 5):
            counter = counter + 1
        return (num1 + num2)
    def sub_num(self, num1, num2):
        return (num1 - num2)
    def prod_num(self, num1, num2):
        return (num1 * num2)
    def div_num(self, num1, num2):
        if not num2:
            return 0
        return num1/num2
    def lhospital(self, num1, num2):
        if num2 == 0:
            return 10000000
        else:
            return num1/num2

Чтобы получить покрытие, я запускаю эту команду:

py.test --cov-report xml --cov=test/lib test/lib/test_basic.py

В coverage.xmlУ меня есть отчет о покрытии и пример для строки 6,7 в basic.py является:

<line branch="true" condition-coverage="100% (2/2)" hits="1" number="6"/>
<line hits="1" number="7"/>

В basic.pyстроки 6,7 выполняются несколько раз. Есть ли способ изменить .coveragerc файл или, может быть, что-то еще, чтобы количество попаданий в строку отражало несколько выполнений?

Спасибо!

1 ответ

Coverage.py не поддерживает количество попаданий. Возможно в будущем это будет.

Другие вопросы по тегам