前言:最近在學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互不干涉,互不影響。
具體使用就看業務來了!