pytest,有没有兴趣了解一下

pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。

它的优点:

简单的单元测试

复杂的功能测试

可以跳过你想跳过的那部分测试

可以扩展

..................



那首先来安装一下吧!

pip install -U pytest

那么pip将会自动帮你安装

当然如果你装好了,它也会提示你已经装了

640?wx_fmt=png

可以查看一下Version:

640?wx_fmt=png

下面我们就可以动手来试试咯。

执行测试的时候,我们只需要在测试文件test_sample所在的目录下,运行py.test即可。pytest会在当前的目录下,寻找以test开头的文件(即测试文件),找到测试文件之后,进入到测试文件中寻找test_开头的测试函数并执行。

创建一个测试文件test1.py

def fun(x):

      return x+1

def test_fun():

      assert fun(2)==2

之后就可以运行测试啦,终端输入py.test即可查看程序的具体情况。

640?wx_fmt=png



当需要编写多个测试样例的时候,我们可以将其放到一个测试类当中

640?wx_fmt=png

我们可以通过执行测试文件的方法,执行上面的测试:py.test -q testdemo.py


编写测试样例的时候我们可能要注意以下几点:

测试文件以test开头

测试类以Test开头,并且不能带有 __init__ 方法

测试函数以test_开头

断言使用assert


执行pytest测试样例的时候,我们是如何执行的呢?

最简单的,只要终端处于当前执行py测试文件的目录:

py.test

如果是在某个模块里运行pytest的话:

py.test test1.py

指定某个路径去运行:

py.test somepath

只去运行某个字符表达式里面的东西:

py.test -k stringexpression


最后一点,如何去生成测试报告:

pytest可以方便的生成测试报告,可以生成HTML的测试报告,或者xml格式的报告等等。

那我们现在来看看:


生成txt格式的报告:

py.test --resultlog=report.txt 

生成xml格式的报告:

py.test --junitxml=path/log.xml 


生成html格式的报告:(需要安装一下pip install -U pytest-html)

py.test test_report.py --html=C:\Users\Desktop\log.html 




待续。。






640?wx_fmt=jpeg

文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/tongtongjing1765/article/details/100581825

(完)