unittest測試用例的執行順序


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。

 


免責聲明!

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



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