当前位置:   article > 正文

09-pytest-parametrize参数化_pytest parametrize 返回值

pytest parametrize 返回值

目录

固定输入校验

参数组合

mark.xfail标记失败用例

fixtrue和parametrize搭配使用


固定输入校验

  1. # -*- coding: utf-8 -*-
  2. # @Time : 2021/10/10
  3. # @Author : 大海
  4. # @File : test_13.py
  5. import pytest
  6. """
  7. 参数说明:
  8. 第1个参数是字符串,多个参数中间用逗号隔开
  9. 第2个参数是list,多组数组用元组类型
  10. """
  11. @pytest.mark.parametrize("test_input,expected",
  12. [("3+5", 8),
  13. ("2+4", 6),
  14. ("6 * 9", 54),
  15. ])
  16. def test_eval(test_input, expected):
  17. assert eval(test_input) == expected
  18. if __name__ == "__main__":
  19. pytest.main(["-s", "test_13.py"])

参数组合

  1. # -*- coding: utf-8 -*-
  2. # @Time : 2021/10/10
  3. # @Author : 大海
  4. # @File : test_14.py
  5. import pytest
  6. # 遍历x与y组合
  7. @pytest.mark.parametrize("x", [0, 1])
  8. @pytest.mark.parametrize("y", [2, 3])
  9. def test_foo(x, y):
  10. print("测试数据组合:x->%s, y->%s" % (x, y))
  11. if __name__ == "__main__":
  12. pytest.main(["-s", "test_14.py"])

mark.xfail标记失败用例

  1. # -*- coding: utf-8 -*-
  2. # @Time : 2021/10/10
  3. # @Author : 大海
  4. # @File : test_15.py
  5. import pytest
  6. """
  7. 标记为失败的用例,预期结果是失败,实际运行也是失败,显示xfailed
  8. 使用场景:
  9. 功能已经未开发完或有问题,可以使用此标记为预期失败
  10. """
  11. @pytest.mark.parametrize("test_input,expected", [
  12. ("3+5", 8),
  13. ("2+4", 6),
  14. pytest.param("6 * 9", 42, marks=pytest.mark.xfail),
  15. ])
  16. def test_eval(test_input, expected):
  17. print("-------开始用例------")
  18. assert eval(test_input) == expected
  19. if __name__ == "__main__":
  20. pytest.main(["-s", "test_15.py"])

fixtrue和parametrize搭配使用

  1. # -*- coding: utf-8 -*-
  2. # @Time : 2021/10/10
  3. # @Author : 大海
  4. # @File : test_16.py
  5. import pytest
  6. # 测试账号数据
  7. test_data = ["user1", "user2"]
  8. @pytest.fixture(params=test_data)
  9. def start(request):
  10. user = request.param
  11. print('启动app')
  12. print("登录账户:%s" % user)
  13. return user
  14. # indirect=True 参数是为了把start当作一个函数去执行,而不是一个参数
  15. @pytest.mark.parametrize("start", test_data, indirect=True)
  16. def test_login(start):
  17. """登录用例"""
  18. a = start
  19. print("start中的返回值:%s" % a)
  20. assert a != ""
  21. if __name__ == "__main__":
  22. pytest.main(["-s", "test_16.py"])

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/143768
推荐阅读
相关标签
  

闽ICP备14008679号