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。

原文地址:https://www.cnblogs.com/1510152012huang/p/10684862.html