Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有任何缓存可供pytest使用参数化运行?_Python_Pytest - Fatal编程技术网

Python 是否有任何缓存可供pytest使用参数化运行?

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

下面代码中的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_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
并解决了问题!