在python中是否可以将参数传递给拆卸装置?
我有很多测试方法需要运行,然后在每次测试之后,我想在其他地方更新我的结果。 这就是我所拥有的:在python中是否可以将参数传递给拆卸装置?,python,pytest,finalizer,fixture,teardown,Python,Pytest,Finalizer,Fixture,Teardown,我有很多测试方法需要运行,然后在每次测试之后,我想在其他地方更新我的结果。 这就是我所拥有的: @pytest.mark.testcasename('1234') @pytest.mark.parametrize('lang', ["EN", "FR"]) def test_text(self, request, base_url, lang): testrail_conn = TestrailHelper() test_case
@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_状态处于拆卸夹具中,在该夹具中我可以将测试结果传递给它。这样我就不需要为每个测试方法编写相同的代码。。
有什么想法吗
谢谢您可以在
请求
对象上存储某些内容,例如在请求.节点上
-请参阅。或者,您可以使用测试中的fixture(作为参数),并在那里存储一些东西,或者让fixture返回/生成某种数据结构来存储东西。您可以始终在TestCase
实例上存储东西。这样,它将在拆卸过程中可用。我认为在这种情况下,这不是最好的抽象。自定义装饰器或上下文管理器如何?@SvenMarnach是正确的。请看一些插件挂钩。有一个很好的例子谢谢@SvenMarnach。我试试看。我只是觉得我可以用py.test中的fixture来制作它work@SvenMarnachpytest通常不提供TestCase
实例,pytest可以使用简单的函数,而不是强制类。