unittest测试用例的执行顺序

时间:2023-03-09 08:45:11
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。