美文网首页带你认识Pytest的种种
pytest(三)如何用pytest开启你的测试之旅?

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

作者: Light软件测试_小艾 | 来源:发表于2020-06-09 23:11 被阅读0次

    当你写完测试代码后,就想立马跃跃欲试运行自己的成果了吧。可是摆在你面前的问题是,如何让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

    相关文章

      网友评论

        本文标题:pytest(三)如何用pytest开启你的测试之旅?

        本文链接:https://www.haomeiwen.com/subject/xusytktx.html