unittest的測試順序為:有幾個測試用例,測試固件就會執行多少次。
例如:只有一個測試用例時:
setup--testcase1--teardown
import unittest
class F1(unittest.TestCase):
def setUp(self):
print("准備工作已經做好")
def tearDown(self):
print("處理完成")
def test_case1(self):
print("執行測試用例1")
if __name__ == "__main__":
unittest.main()
測試結果如下:
Ran 1 test in 0.015s OK 准備工作已經做好 執行測試用例1 處理完成
例如:有多個測試用例時:
setup--testcase1--teardown--setup--tescase2--teardown--setup--testcase3
import unittest
class F1(unittest.TestCase):
def setUp(self):
print("准備工作已經做好")
def tearDown(self):
print("處理完成")
def test_case1(self):
print("執行測試用例1")
def test_case2(self):
print("執行測試用例2")
def test_case3(self):
print("執行測試用例3")
def test_case4(self):
print("執行測試用例4")
if __name__ == "__main__":
unittest.main()
結果如下:
Ran 4 tests in 0.005s OK 准備工作已經做好 執行測試用例1 處理完成 准備工作已經做好 執行測試用例2 處理完成 准備工作已經做好 執行測試用例3 處理完成 准備工作已經做好 執行測試用例4 處理完成
總結:當有多個測試用例,然而只想執行其中的一個時,把鼠標放到想執行的測試用例上,右鍵執行。當全部執行時,放在最后的if語句上。
在unittest中,測試用例的執行順序與測試用例的名稱有關,按照名稱的ascii碼進行的,並不是按照用戶寫的順序執行的。
import unittest
from selenium import webdriver
class F2(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get("http://www.baidu.com/")
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_baidu_news(self):
self.driver.find_element_by_link_text("新聞").click()
self.driver.back()
def test_baidu_map(self):
self.driver.find_element_by_link_text("地圖").click()
self.driver.back()
if __name__ == "__main__":
unittest.m
執行上段代碼時發現,程序先執行的test_baidu_map,后執行的test_baidu_news。
