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_folder/test_runner.py::TestClass::testcase[210426343] get_run_List: testcase_run_list: [210426343, 210426628, 210426645, 210426712] 测试用例中的 case_id:210426343 测试用例中的 case_id_list: [210426343, 210426628, 210426645, 210426712]
第二次运行日志,在这种情况下,它看起来像是使用上次调用中传递的值运行:
正在收集……收集了 4 件物品
../testcase_folder/test_runner.py::TestClass::testcase[210426343] get_run_List: testcase_run_list: ['210426645'] 测试用例中的 case_id:210426343 测试用例中的case_id_list:['210426645']
答案 0 :(得分:0)
按照 MrBean 的解决方案,我用 pytest_generate_tests
替换 @pytest.mark.parametrize
有关 pytest_generate_tests 的更多信息可以在 https://docs.pytest.org/en/reorganize-docs/parametrize.html#basic-pytest-generate-tests-example
找到