Miss_love 发表于 2019-12-4 20:17:31

pytest--命令行参数

本帖最后由 Miss_love 于 2019-12-4 20:20 编辑

使用pytest --help可以查看全部选项
​https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs6XvrdscyCgTUspF3fkcrK0Z76ynFurbY2niaoiaEjsOLsbRCYpVLlm5gEtRRQuybssJ2cibSAccaZog/640?wx_fmt=png
[*]-v:pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等

    https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlRLp71icUlntkZ2ayQ7H51js4z5mxBjEwx6tDicJW4s7tdRl9aicHacOY8A/640?wx_fmt=png
[*]-q(--quiet)该选项的作用与-v/--verbose的相反,简化输出信息。https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlRichy0nKTIlPZ66gXk9W6LichPaH4QrH8RfXfGic25VRLtpYhFb2cRkZBQ/640?wx_fmt=png
[*]-k -k 选项允许使用表达式指定希望执行的测试用例,例如:test_answer()   test_result()那么可以用表达式"answer or result"来筛选。结合-v或者--verbose查看是否符合预期,如下图:https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs6XvrdscyCgTUspF3fkcrK0Q8ZRRqP7GibvfYzLOb3q22DfvBqhMDMOWzkpzNfXXxb1Iq7jhqURCBg/640?wx_fmt=png
[*]-m

  标记(marker)用于标记测试并分组,以便快速选中并运行。以test_answer()、 test_result1()为例,它们甚至都不在同一个文件里,如果希望同时运行它们,那么可以预先做好标记。  这里使用什么标记名可以自定义,比如使用run_cases则可以用@pytest.mark.run_cases这样的装饰器(decorator)来标记,如下所示:给test_result()也做上同样的标记。有相同标记的测试用例,可以一起运行。使用pytest -m run_cases命令就可以同时运行test_answer()和test_result1()。如下图:
https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs6XvrdscyCgTUspF3fkcrK0g5OXUaTuxxcCfUFsRRfqc1UbztlMRxYlQNicrsrzcZWWhe44wicRl9icw/640?wx_fmt=png 使用-m选项还可以用表达式指定多个标记各。使用-m "mark1 and mark2"可以同时选中带有这两个标记的所有测试用例。使用-m "mark1 and not mark2"则会选中带有mark1的测试用例,而过滤带有mark2的测试用例;使用-m "mark1 or mark2"则选中带有mark1或者mark2的所有测试用例。
[*]--lf(--last-failed)

只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)如下图:
https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlRfnP6BHoiavg1Zhn2ib7Jf89ykySmWa4kKQ9p2y10bzJz6nk1ibKl3OpCw/640?wx_fmt=png
[*]--ff(--failed-first)运行所有测试,但首先运行上次运行失败的测试(这可能会重新测试,从而导致重复的fixture setup/teardown)


https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlRlAHyF0MgENn1MWSff32Ehiau45KYppCNpEiboXY7YmfrRdBicgLQicayKA/640?wx_fmt=png
[*]--x


--exitfirst       遇到错误或者用例不通过,则退出执行.https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlRF3oBaULI9cLES8Bb86U08549VR6DViaA3uPr0X9vRphtKicVqVSt0CQA/640?wx_fmt=png第一个用例不通过,后面的用例都不执行

[*]--maxfail=num

上面我们介绍-x, 它的作用是用例执行失败或者错误,就会停止执行。如果希望pytest失败几次后再停止,则可以使用--maxfail选项,指定执行失败次数。如设置--maxfail=2,则需要遇到两次错误才会停止。https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlR39Fx5x1j8Cwz9XTbDuKDDjwaiaMlv0O3FzF5T6dL6as3SMdTcLAk5qg/640?wx_fmt=png由于只有一个错误,所有可以正常执行后面的用例。下图设置--maxfail=1,遇到失败或者错误后,后面的用例不再执行。https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlRVBibeubagkpFX77tuibDrMtWPsoZLPUs4tVAz8n1JDkOsvKl0m2Js69g/640?wx_fmt=png
[*]-s


在运行测试脚本时,为了调试或打印一些内容,我们会在代码中加一些print内容,但是在运行pytest时,这些内容不会显示出来。如果带上-s,就可以显示了。https://mmbiz.qpic.cn/mmbiz_png/AaibT0jAkLs7cWwJgUjXPXnvYSrqfjKlR1Tzcq2fkX9h28Wib4n0dWm9bT8aZ01TPw1b7mjdtU4eeNiaiaLkzCQiaVw/640?wx_fmt=png

Miss_love 发表于 2020-12-30 14:47:44

:handshake
页: [1]
查看完整版本: pytest--命令行参数