Python 是否有任何缓存可供pytest使用参数化运行?
下面代码中的case_id从上次调用中获取值。如果存在导致此问题的某些功能,如何重置或禁用缓存功能Python 是否有任何缓存可供pytest使用参数化运行?,python,pytest,Python,Pytest,下面代码中的case_id从上次调用中获取值。如果存在导致此问题的某些功能,如何重置或禁用缓存功能 def setup_class(self): global case_id_list test_runner = TestRunner() case_id_list = test_runner.get_run_List() @pytest.mark.parametrize('case_id', case_id_list) def testcase(self, case_i
def setup_class(self):
global case_id_list
test_runner = TestRunner()
case_id_list = test_runner.get_run_List()
@pytest.mark.parametrize('case_id', case_id_list)
def testcase(self, case_id, json_metadata):
print("case_id in testcase: "+ case_id)
print("case_id_list in testcase: " + str(case_id_list))
首次运行日志,在这种情况下,正确运行:
收集。。。收集4项
../testcase_文件夹/test_runner.py::TestClass::testcase[210426343]获取_运行_列表:testcase_运行_列表:[210426343210426628210426645210426712]
测试用例中的用例id:210426343
testcase中的case_id_列表:[210426343210426628210426645210426712]
第二次运行日志,在这种情况下,它看起来像是使用上次调用中传递的值运行:
收集。。。收集4项
../testcase_文件夹/test_runner.py::TestClass::testcase[210426343]获取运行列表:testcase运行列表:['210426645']
测试用例中的用例id:210426343
testcase:['210426645']通过遵循MrBean的解决方案,我通过使用
pytest\u generate\u tests
替换@pytest.mark.parametize
有关pytest\u generate\u测试的更多信息,请访问不清楚如何调用pytest。你能分享吗?我认为问题可能与修改全局变量
case\u id\u list
有关。为什么要这样做?参数(例如,case\u id\u list
)是在加载时读取的,而不是在运行时读取的,此时设置它们太晚了。如果要动态填充列表,必须在pytest\u generate\u tests
中完成。感谢您的帮助。我使用了pytest\u generate\u tests
并解决了问题!