У меня есть набор методов тестирования, которые мне нужно запустить, а затем после каждого теста я хочу обновить результаты в другом месте. Это то, что я есть:Можно ли передать параметр в устройство для разрыва в 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 к нему. Таким образом, мне не нужно писать одинаковый код для каждого метода тестирования. Любые идеи?
Благодаря
Вы всегда можете хранить вещи на 'TestCase 'экземпляр. Таким образом, он будет доступен во время срыва. Я не думаю, что это будет лучшая абстракция для использования в этом случае. Как насчет пользовательского декоратора или менеджера контекста? –
@SvenMarnach is right –
Посмотрите на некоторые из плагинов. http://stackoverflow.com/questions/26259990/execute-code-if-a-test-fails-with-py-test имеет приятный пример – second