Coverage.py - файл с исходным кодом не покрывается всеми тестами из тестового файла

После завершения тестов я должен использовать покрытие, чтобы узнать процент покрытия. Итак, у меня есть один файл (исходный код) под названием connectors.py и тестовый файл под названием test_connectors.py, в котором у меня есть много тестов (21 - ниже вы можете увидеть только 2 из них, но это не имеет значения:

Тестовый файл

class FileCompare():...



class TestParser(unittest.TestCase):

    def test_TRS_ABU_INOUT_001(self):
        current_path = os.path.realpath(__file__)
        head, tail = ntpath.split(current_path)
        os.system('connectors.py -in ' + head + '\\tests\TRS.ABU.INOUT.001\input -out ' + head + '\\tests\TRS.ABU.INOUT.001\output')
        self.assertTrue(FileCompare.checkParsing(head + '\\tests\TRS.ABU.INOUT.001\input', head + '\\tests\TRS.ABU.INOUT.001\output\\result.log', 'is'))

    def test_TRS_ABU_FUNC_0001(self):
        current_path = os.path.realpath(__file__)
        head, tail = ntpath.split(current_path)
        os.system('connectors.py -in ' + head + '\\tests\TRS.ABU.FUNC.0001\input -out ' + head + '\\tests\TRS.ABU.FUNC.0001\output')
        self.assertTrue(FileCompare.isOutput(head + '\\tests\TRS.ABU.FUNC.0001\output'))

Моя проблема следующая: после запуска покрытия для файла connectors.py в сгенерированном файле отчета html он показывает мне код, охватываемый только последней функцией из test_connectors.py (в моем примере последней функцией является test_TRS_ABU_FUNC_0001, которая не проходит через весь исходный код). код)

В моем исходном коде я импортировал Coverage как модуль from coverage import Coverage, а в конце кода, который я использовал:

if name == "main": 
cov = Coverage() 
cov.start() 
main() 
cov.stop() 
cov.html_report(directory = "coverage-html")

Ну, в моем test_connectors.py я использую такое покрытие: coverage run --source=dir my_program.py

Что я могу сделать, чтобы extension.py использовала все функции тестов из test_connectors.py для проверки их покрытия в моем исходном файле?

Вы не показали, как вы проводите тесты и как вызываете покрытие.

Ned Batchelder 10.03.2018 14:06

В моем исходном коде я импортировал Покрытие как модуль ('from Покрытие импорта Покрытия') и в конце кода, который я использовал, если название == "основной": cov = Coverage () cov.start () main () cov.stop () cov.html_report (каталог = "покрытие-html"). Ну, в моем test_connectors.py я использую такое покрытие: покрытие run --source = dir my_program.py

Robert 12.03.2018 06:59

Вам нужно будет добавить эти детали к вопросу, это невозможно понять так. НО: вам почти наверняка не нужно использовать API покрытия. Просто запустите свой тестовый исполнитель с помощью командной строки покрытия.

Ned Batchelder 12.03.2018 12:44
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
229
0

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