pytest插件
pytest拥有丰富的第三方插件,在执行测试用例的过程中实现某些功能或是更好的帮助查看测试结果,下面记录几个目前运用到的插件。
pytest-html
在测试完成后,可以利用这个插件输出html报告,首先下载插件pytest-html
。
在运行时输入下方参数:
pytest test_v1.py --html=report.html
运行完成后会在测试文件所在的目录下创建出report.html
文件,在输出结果中也会标记该文件的地址。
如果有分享出去的需求则需要把css样式合并到html里面,如下所示:
pytest test_v1.py --html=report.html --self-contained-html
pytest-repeat
如果在执行多个测试用例时,个别用例需要重复执行一定的次数,可以用这个插件来实现。同样首先需要进行下载插件pytest-repeat
在需要执行n次的用例前方,打标记即可。
@pytest.mark.repeat(n)
--count,--repeat-scope
--count:命令行参数,指定重复运行的次数
--repeat-scope:命令行参数,指定重复运行的范围,默认function,还有class、module、session。
pytest --count=3 --repeat-scope=class test.py
#test.py文件中的类,每个类重复执行三次
pytest-sugar
输出的结果更好看一些,只需进行下载,运行时自动看到效果。
pytest-emoji
单纯的为了输出更有意思一些,测试结果是用emoji表情来进行标识。下载完成后,运行时需要加上--emoji
参数
pytest test_v1.py --emoji
然后,结果就会变成这样:
pytest参数
除了上述插件,pytest在运行时也可以通过参数来灵活控制测试用例的执行情况、查看运行结果。
-s
:打印出测试函数中的print语句,如果不加-s,是不会打印出来的。
-v
:打印出更详细的测试结果。
-q
:与-v
相反,打印出更简洁的测试结果。
-l
:如果测试用例执行失败,则会打印出该测试用例包含的局部变量(无需写print
)。
-k
:执行模糊匹配成功的测试用例。例如pytest -k 'api' test_v1.py
,则仅会执行在test_v1.py
中的测试函数名称中包含api的测试用例。
自我记录,有错误欢迎指正~