pytest 常用命令行选项(一)

  pytest有丰富的命令行选项,以满足不同的需要,下面对常用的命令行选项作下简单介绍。  上文已经使用过-v选项,还有很多选项,你可以使用pytest --help查看全部选项。如下图:

    

  1、--collect -only 选项  

  使用--collect -only选项可以展示在给定配置下哪些用例会被运行。让你方便地在测试运行之前,检查用例是否符合预期。如下例:

  

  2、-k 选项

   -k 选项允许你使用表达式指定希望运行的测试用例。假设希望选中test_asdict()和test_defaults(),那么可以用代表式"asdict or defaults"来筛选。结合-v或者--verbose查看是否符合预期,如下图:

  

  3、-m 选项  

  标记(marker)用于标记测试并分组,以便快速选中并运行。以test_replace()和test_member_access()为例,它们甚至都不在同一个文件里,如果希望同时运行它们,那么可以预先做好标记。

  这里使用什么标记名由你自己决定,比如使用run_these_case,则可以用@pytest.mark.run_these_case这样的装饰器(decorator)来标记,如下所示:

  import pytest ...

  @pytest.mark.run_these_case

  def test_member_access():

  ...  

  给test_replace()也做上同样的标记。有相同标记的测试用例,可以一起运行。使用pytest -m run_these_case命令就可以同时运行test_replace()和test_member_access()。如下图:

  

   使用-m选项还可以用表达式指定多个标记各。使用-m "mark1 and mark2"可以同时选中带有这两个标记的所有测试用例。使用-m "mark1 and not mark2"则会选中带有mark1的测试用例,而过滤带有mark2的测试用例;使用-m "mark1 or mark2"则选中带有mark1或者mark2的所有测试用例。

  4、-x 选项  

  正常情况下,pytest会运行每一个搜索到的测试用例。如果某下测试函数被断言失败,或者触发了外部异常,则该测试用例的运行就会到此为止,pytest将其标记为失败后会继续运行下一个测试用例。通常,这是我们期望的运行模式。但如果希望在遇到失败时立即停止整个会话,这时-x选项就派上用场了。如用-x选项运行之前的6个测试用例,如下:

  

  输出信息开头显示pytest收集到6个测试条目,末尾显示有1个通过,1个失败。如果没有-x选项,那么6个测试都会被执行,即使遇到测试失败,但没有停止后面的测试用例。如下图:

  

  5、--maxfail==num选项  

  -x选项的特点是, 一旦遇到测试失败,就会全局停止。如果你希望pytest失败几次后再停止,则可以使用--maxfail选项,明确指定要以失败几次。  如设置--maxfail=2,则需要遇到两次错误才会停止,这样前面只存在一个失败测试的就会全都被执行。如下图:

  

   So如设置--maxfail=1,在这里就与前面的-x作用相同。

  6、--lf(--last-failed)选项  当一个或者多个测试失败时,我们常常希望能够定位到最后一个失败的测试用例重新运行,这时可以使用--lf选项。如下图:

  

  7、--ff(--failed-first)选项  此选项与上面的--lf(--last-failed)选项的作用基本相同,不同之处在于--ff会运行完剩余的测试用例。如下图:

  

   由于test_failing()是在test_two.py文件中,因此通常会在test_one.py之后运行,但是在--ff选项作用下,test_failing()前一轮被认定为失败,会被首先执行。

posted @ 2018-11-20 15:04  菜鸟可米  阅读(8158)  评论(0编辑  收藏  举报
jQuery火箭图标返回顶部代码