После завершения тестов я должен использовать покрытие, чтобы узнать процент покрытия. Итак, у меня есть один файл (исходный код) под названием 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 для проверки их покрытия в моем исходном файле?
В моем исходном коде я импортировал Покрытие как модуль ('from Покрытие импорта Покрытия') и в конце кода, который я использовал, если название == "основной": cov = Coverage () cov.start () main () cov.stop () cov.html_report (каталог = "покрытие-html"). Ну, в моем test_connectors.py я использую такое покрытие: покрытие run --source = dir my_program.py
Вам нужно будет добавить эти детали к вопросу, это невозможно понять так. НО: вам почти наверняка не нужно использовать API покрытия. Просто запустите свой тестовый исполнитель с помощью командной строки покрытия.






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