Можно ли передать параметр в крепление для демонтажа в python?

У меня есть куча тестовых методов, которые мне нужно запустить, а затем после каждого теста я хочу обновить свои результаты где-нибудь еще. Вот что у меня есть:

@pytest.mark.testcasename('1234')
@pytest.mark.parametrize('lang',
                         ["EN", "FR"])
def test_text(self, request, base_url, lang):
    testrail_conn = TestrailHelper()
    test_case_id = request.node.get_marker("testcasename").args[0]
    base_url = base_url.replace("testEN", "testFR") if lang == "FR" else base_url
    self.navigate(base_url)
    self.wait_for_page_loaded()
    results = self.check_text(lang)
    try:
        assert results
        testrail_conn.update_test_status(test_case_id, test_result=1)
    except AssertionError:
        testrail_conn.update_test_status(test_case_id, test_result=5)

Моя проблема в том, что я хочу, чтобы update_test_status находился в приспособлении для разрыва, где я мог бы передать ему свой test_result. Таким образом, мне не нужно писать один и тот же код для каждого метода тестирования. Есть идеи?

Спасибо

1 ответ

Вы можете хранить что-то на request объект, например, на request.node - см. документы. В качестве альтернативы, вы можете использовать свой прибор (в качестве аргумента) из теста и сохранить что-то там - или заставить прибор возвращать / давать какую-то структуру данных для хранения вещей.

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