python--setUp()和tearDown()應用


setUp:表示前置條件,它在每一個用例執行之前必須會執行一次 

setUp可以理解為我們需要自動化測試時,需要打開網頁窗口,輸入對應測試地址,這一些屬於前置條件。

tearDown:表示釋放資源,它在每次用例執行完之后會執行一次

tearDown可以理解為我們測試完畢后,需要關閉瀏覽器。

以下示例演示setUp和tearDown的執行順序:

#coding:utf-8
import unittest
class Xseq(unittest.TestCase):
def setUp(self):
print "前置測試條件"
def tearDown(self):
print "結束測試條件"
def testadd(self):
print '1+1=',1+1
def testsub2(self):
print '3-2=',3-2
def testsub1(self):
print '3-3=',3-3
def mul(self):
print '3*1',3*1
if __name__=="__main__":
unittest.main()

運行結果為:

 

由此可看到運行的順序:

1. 每次執行函數方法時,必須先執行一次setUp()函數,執行完一個函數方法后,必須再執行一次tearDown()函數

2. 執行函數的時候有序號時,例如testxx1,testxx2 會根據序號來進行執行

3. 當函數方法不是以test開頭是,不執行該方法。

若我想要改變setUp()在所有用例執行之前只執行一次,和tearDown()函數在所有用例執行之后只執行一次的話

1. 需要使用python中的@classmethod內置裝飾器

2. 需要把函數名改為setUpClass(cls) / tearDownClass(cls)

以下為示例:

#coding:utf-8
import unittest
class Xseq(unittest.TestCase):
@classmethod
def setUpClass(cls):
print "前置測試條件"
@classmethod
def tearDownClass(cls):
print "結束測試條件"
def testadd(self):
print '1+1=',1+1
def testsub2(self):
print '3-2=',3-2
def testsub1(self):
print '3-3=',3-3
def mul(self):
print '3*1',3*1
if __name__=="__main__":
unittest.main()

運行結果為:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM