美文网首页带你认识Pytest的种种
pytest(四)在pytest中也有传统的setup/tear

pytest(四)在pytest中也有传统的setup/tear

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

    传统测试框架中,类似setup和teardown的功能是必不可少的。做过测试的小伙伴们肯定知道,在运行一条测试用例时,总会在测试前要做一些预配置(configuration)或者预条件(precondition),然后在测试完后就要恢复(restore)到初始状态。那么setup和teardown在你的自动化代码里就会做这些事。

    其实setup/teardown也保证测试用例的独立性,尤其在自动化测试用例编写时,独立性尤其重要。

    刚开始做自动化测试的同学们,在设计用例时很容易犯一个错误——连续跑一套测试用例没问题,但是跑单个用例,就报错了,原来报错的case的配置依赖之前的。

    Unittest支持类级别setupclass/teardownclass和类方法级别setUp/testDown, Pytest也有类似的接口,而且支持的scope更加多。

    01

    函数级别之setup/teardown

    我们先从简单的函数级别开始,Pytest 提供 setup_function/teardown_function,它对测试函数有效,每个测试函数前后调用一次。

    test_add.py

    运行结果:

    02

    类级别之setup/teardown

    对于类级别,Pytest 提供 setup_class/teardown_class,  对类有效,类中前后调用一次。

    test_minus.py

    运行结果:

    03

    类测试方法之setup/teardown

    对于类测试方法,Pytest提供setup_method/teardown_method和setup/teardown(这个与unittest一样),两者效果没有区别,用一种即可。对类测试方法有效,每个测试类测试方法前后调用一次。这里我们举例setup_method/teardown_method

    test_minus.py

    运行结果:

    04

    模块级别之setup/teardown

    Pytest还提供模块级的, 接口名字是setup_module/teardown_module,模块前后调用一次。

    test_add.py

    运行结果:

    综合运用

    最后我们来个大乱炖,把所有用法集中在一个文件里。

    test_all.py

    运行结果:

    如果你有使用unittest的经验,那么上述对你来说是非常容易接受的,但是很可惜,我们并不推荐使用它们,因为pytest提供了一个更强大的武器,我们会在下一篇中为大家介绍。

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

    微信公众号是LightSoftwareTest

    相关文章

      网友评论

        本文标题:pytest(四)在pytest中也有传统的setup/tear

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