Как обработать повторный запуск в pytest с помощью приспособления pytest_runtest_makereport - PullRequest
0 голосов
/ 14 января 2020

Я использую 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))

Как я могу удалить счетчик ошибок, если тестовый пример пройден во втором запуске?

...