前言:最近在学pytest、故做点笔记。
1、学过unittest的都知道setup和teardown。前置和后置的意思。(在每个用例前后执行一次。)
比之用的少一点的还有setupclass和teardownclass,需要配合@classmethod装饰器一起使用。(在所有用例前后总共各执行一次。)
2、pytest也有类似的语法。并且种类更多。按照用例运行级别可以分为以下几类:
*模块级(setup_module/teardown_module):开始于模块始末,作用于全局(总用各执行一次。)
*函数级(setup_function/teardown_function):仅对函数用例生效。(即不在类中。每个函数执行一次)
*类级(setup_class/teardown_class):只在类中前后运行一次。(在类中)
*方法级(setup_method/teardown_method):开始于方法始末(在类中。每个方法执行一次)
*类里面的(setup/teardown):运行在调用方法的前后(每个方法执行一次)
注:类里面按优先级排序的话:setup_class > setup_method > setup >用例> teardown > teardown_method > teardown_class(即执行顺序)
3、下面通过几个例子加深一下印象:
3.1:
运行结果如下:
由上图也可知:在类里面。运行顺序为:setup_class > setup_method > setup >用例> teardown > teardown_method > teardown_class
3.2:
结果执行如下:
通过上图。我们可以得知。setup/teardown_module优先级是最大的。其次。函数里面用到的setup/teardown_function与类里面的setup/teardown_class互不干涉,互不影响。
具体使用就看业务来了!