带你认识Pytest的种种

pytest(三)如何用pytest开启你的测试之旅?

2020-06-09  本文已影响0人  Light软件测试_小艾

当你写完测试代码后,就想立马跃跃欲试运行自己的成果了吧。可是摆在你面前的问题是,如何让pytest去执行你想要的测试用例或者用例集。

在unittest中,常用的套路就是创建一个测试套对象,然后往这个测试套对象里加你想要的测试用例,最后用runner对象去执行。

那pytest是怎么样的呢?我们来一个非常微型的项目实战,但不管微型、小型还是大型项目,套路基本上是差不多的。

项目目录结构

这个项目包含了一个calculator.py和一个test包,test包下有四个测试脚本。

calculator.py,实现了一个非常简单的计算器类

test_add.py

minus_add.py

test_multiply.py

divide.py

现在我们在控制台里切到项目根目录,执行命令pytest会发生什么呢,你觉得哪些用例会被执行到。 根据下面的pytest测试用例发现规则,大家可以先思考一下。

可以在命令行上指定文件名或目录名。如果不指定,则使用当前目录。

递归地在目录和所有子目录中查找测试模块。

测试模块是一个文件,其名称以test_开头或以_test结尾。

在测试模块中查找以test开头的函数。

在测试模块中查找名称以Test开始的类, 在该类中查找以test开头的方法,但是该类中不能有__init__方法。

现在答案揭晓

5个case被发现,它们是test_add_int, test_add_float,test_minus_int,test_minus_float 和test_multiply_int。

按照规则首先会在当前目录下递归查找测试模块,这里有三个文件符合test_add.py, test_minus.py 和test_multiply.py。

然后查找测试函数或者测试类下的测试方法,test_add.py模块下test_add_int 和 test_add_float被命中;

test_minus.py模块下test_minus_int和test_minus_float被命中;

test_multiply.py模块下Test_minus测试类被命中,同时该测试类下的test_multipy_int被命中。而其他并未符合规则,所以5个用例被找到了。

有时候你不想运行所有的测试用例,而是只想运行某一个测试用例或某一个测试用例集。

执行一个测试模块:pytest 测试目录/模式模块

执行某个测试模块下的测试函数:pytest测试目录/模式模块::测试方法

执行某个测试模块下的测试类:pytest 测试目录/模式模块::测试类

执行某个测试模块下测试类的测试方法:pytest 测试目录/模式模块::测试类::测试方法

到这里小艾已经为大家介绍了pytest的测试方法发现规则和执行指定测试用例的用法,这些我想在项目中已经够用。

希望同学们也可以在自己的环境中实践加深印象和理解。

阅读测试理论,测试管理,自动化测试和持续集成的更多文章,可以关注本人的公众号哦,希望和能大家一起进步。

微信公众号是LightSoftwareTest

上一篇下一篇

猜你喜欢

热点阅读