七、fixture 的用例管理

1. 跳过用例 skip:

  当有部分测试用例还没实现,但是又需要先运行整个模块进行调试时,可以使用 skip 跳过指定的某些用例以达到测试通过的效果。

  @pytest.mark.skip(reason="指定跳过原因")

  def test_case():

    pass

  有条件跳过某些内容:

  @pytest.mark.skipif(sys.version_info[0:3] > (3, 8), reason="python版本高于3.8不执行")

  def test_case():

    pass

  *注意:skipif 中传入的参数既可以是 bool 类型,也可以是 str 类型,如果是 bool 类型必须显示声明 reason 参数,否则报错。如果是 str 类型可以不声明 reason 参数。

2. 标记失败 xfail:

  场景:执行 A 测试用例时,该用例执行失败,如果 B 和 C 用例都是依赖于 A 用例,那么可以直接跳过 B 和 C 用例的执行,直接给它标记为 xfail,这样就节省用例执行时间。

  @pytest.mark.xfail(condition=False, reason="当前用例对象不存在")

  def test_case():

    pass

  condition=True 且测试用例断言结果失败,运行结果是 xfailed 状态(x)
  condition=True 且测试用例断言结果通过,运行结果是 xpassed 状态

3. 重复执行 repeat:

   标记重复执行多次测试,目的:复现一些偶然性bug
  (1)第一种方式:
    @pytest.mark.repeat(count) 
    def test_case():
      pass
  (2)第二种方式:
    使用 pytest-repeat 模块完成,pytest-repeat 是 pytest 的一个插件,用于重复执行单个用例或多个用例
    指令:使用参数 --count 指定重复测试的次数。
      pytest --count=10 Test*.py 
    
    pytest --count=100 -x Test*.py   运行 100 次,一旦发生故障就会停止
 
posted @   努力的小测试  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示