51Testing软件测试论坛

标题: 请问下,pytest.fixture 和 pytest.mark.parametrize 两者的执行顺序问题 [打印本页]

作者: 测试积点老人    时间: 2021-3-18 11:26
标题: 请问下,pytest.fixture 和 pytest.mark.parametrize 两者的执行顺序问题
[attach]132307[/attach]
我在 pytest.fixture 中通过 A 接口生成了一个参数集合的文件,之后在用例中通过 pytest.mark.parametrize 调用,然后发现 pytest.mark.parametrize 中的 yaml.safe_load(open('data/all_test_data/hot_key_word.yaml', encoding='utf-8') 这一句的执行在 pytest.fixture 之前。
  1. @pytest.fixture(scope='function')
  2.    def generate_hot_keyword(self):
  3.        print('generate_hot_keyword_setup')
  4.        entrys = yaml.safe_load(open('data/all_test_data/search_entry.yaml'))
  5.        file_path = 'data/all_test_data/hot_key_word.yaml'
  6.        handle_yaml.remove_yaml_msg(file_path)
  7.        for entry in entrys:
  8.            result = self.get_search_online.get_hot_search(entry).json()
  9.            result_list = handle_result_list.handle_hot_keyword_result(result)
  10.            handle_yaml.generate_yaml_msg(result_list, file_path)
  11. @user2ize('keyword',  yaml.safe_load(open('data/all_test_data/hot_key_word.yaml', encoding='utf-8')))
  12.     def test_hot_key_search(self, keyword, generate_hot_keyword):
  13.         type_id = '31'
  14.         r = self.get_search_online.get_keyword_search(type_id, keyword)
  15.         assert_tool.assert_data_type_list(r.json())
复制代码
请问下,这种参数生成的是不是不能用 fixture 处理,谢谢各位
尝试过将 A 接口的处理设计成一个函数,但是这样处理了之后,我就取不到通过命令行传递过来接口域名了。求帮忙解答一下

作者: qqq911    时间: 2021-3-19 10:37
在前面的先执行吧
作者: jingzizx    时间: 2021-3-20 08:16





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2