前言:
pytest支持函数和类两种用例方式,针对每种情况都有不同的代码
pytest用例运行级别
模块级(setup_module/teardown_module)开始于模块始末,全局的
函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
方法级(setup_method/teardown_method)开始于方法始末(在类中)
类里面的(setup/teardown)运行在调用方法的前后
实例来看下
1. 函数式 setup_function/teardown_function
运行结果:
2. 模块式 setup_module/teardown_module
运行结果:
敲黑板:setup_function/teardown_function和setup_module/teardown_module这四种方法是可以任意组合的,用一个和多个都可以
3. 类和方法
接上篇test_class1.py脚本,在类中增加setup,teardown等代码,如图
运行结果:
从运行结果中可以看出,运行的优先级是:setup_class>setup_method>setup>用例>teardown>teardown_method>teardown_class
敲黑板:这里setup_method和teardown_method的功能和setup/teardown功能是一样的,一般二者用其中一个即可
4. 函数和类混合
如果一个脚本文件中有函数用例也有方法用例,运行顺序又是怎样的呢?自己来试一下吧。
敲黑板:setup_module/teardown_module的优先级是最大的,然后函数里面用到的setup_function/teardown_function与类里面的setup_class/teardown_class互不干涉
ok。