用例标签及运行:
当测试用例比较多的时候,只想运行其中的一个或多个时可以通过标签标记测试用例,然后执行的时候通过标签筛选而指定运行。
如下通过@pytest.mark.标签名标记用例,运行时通过 “-m 标签名”:
一共3个测试用例,只执行了test_one,剩下两个未选定而没有执行,虽然执行成功了,但是会发出警告提示标签未注册,注册标签可以写在配置文件pytest.ini中,如下:
再次执行,结果如下:
标记整个类:此时会运行此类下的所有测试用例
标记组合,如下每个测试函数都加了标记,运行时可以通过and、or、not来运行用例
pytest.ini配置内容如下:
测试用例加上标签:
and:同时具备两个标签,如下只运行了test_two
or:满足一个标签即可
not:如下运行非f的标签用例
命令行参数:
pytest 提供了很多可供我们执行用例的命令行参数,通过下面例子简单的介绍几个:
通过pytest.main()命令运行,以列表的格式传入-v:输出用例更加详细的执行信息,比如用例所在的文件及用例名称等
-q:作用与-v相反,简化输出信息,.代表用例通过,F代表失败
-m:-m ”标签名“,执行特定的测试用例(上面已经介绍过)
-k: -k “关键字”,执行用例包含“关键字”的用例,类似于-m
-s:输出我们用例中的调式信息,比如print的打印信息等
-x: 遇到错误或者用例不通过,则退出执行,如下三个用例,执行到第二个时用例未通过,则退出执行,test_demo2未被执行。
–maxfail=num:类似-x,不同的是—maxfail可以指定执行失败的次数,例–maxfail=3,则执行时遇到3次失败则退出执行:
此时失败用例只有一个,所以不会影响后面的用例执行,如果—maxfail=1,此时与-x的功能是一样的。
多个参数也可以同时运行,如下:
pytest.main(['-s','-v','--maxfail=1','-m smoke'])