Я использую pytest-testrail для публикации sh некоторых python тестовых случаев для тестирования. У меня есть несколько тестовых случаев, которые являются ошибочными и используют --rerun для повторного запуска тестовых случаев, которые не пройдены. После повторного запуска некоторые тестовые примеры будут пройдены (имеется в виду, что случай был выполнен один раз и передан при повторном запуске), но pytest опубликует sh тест как неудачный и пройдет оба теста.
//conftest.py file
@pytest.hookimpl(trylast=True, hookwrapper=True)
def pytest_runtest_makereport(item, call):
report = (yield).get_result()
if report.when == "call":
common_utils.process_test_result(item, report)
//common_utils.py file
def process_test_result(item, result):
# test_case_name instance_num result_type : message
test_case_name = item.originalname if item.originalname is not None else item.name
instance_count = 1
status = None
message = None
if result.passed:
status = 'PASS'
message = 'Test Passed'
elif result.failed:
status = 'FAIL'
message = 'Test Failed'
elif result.skipped:
status = 'CONF'
message = 'Test Skipped'
if status is not None:
logger.info("{0} {1} {2} : {3}".format(test_case_name, instance_count, status, message))
Как я могу удалить счетчик ошибок, если тестовый пример пройден во втором запуске?