夹具:setup和tearDown 自动在每个测试方法之前 以及 之后, 执行额外的指令
在有很多个测试用的时候,他们的准备工作可能是重复的。
1. 方法级夹具
在设置了方法级夹具的用例类中,每个测试方法前后,都会执行1次
setUp 每个测试方法前执行
tearDown 每次测试方法后执行
import unittest from selenium import webdriver class MyTestCase(unittest.TestCase): def setUp(self) -> None: # global driver self.driver = webdriver.Chrome() def tearDown(self) -> None: self.driver.quit() def test_baidu(self): self.driver.get("https://www.baidu.com/") def test_tengxun(self): self.driver.get("https://www.qq.com/") def test_puls(self): c = 1 + 3 print(c)
2. 类级夹具
在设置了类级夹具的用例类中,每个测试类前后,都会执行1次
setUpClass 每个测试类前执行
tearDownClass 每次测试类后执行
此处 @classmethod 不可省
import unittest from selenium import webdriver class MyTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: # global driver cls.driver = webdriver.Chrome() @classmethod def tearDownClass(cls) -> None: cls.driver.quit() def test_baidu(cls): cls.driver.get("https://www.baidu.com/") def test_tengxun(cls): cls.driver.get("https://www.qq.com/") def test_puls(cls): c = 1 + 3 print(c)
3.模块级夹具
在设置了模块级夹具的用例文件中,开始和结束,都会执行1次
setUpModule 本模块所有用例之前执行
tearDownModule 本模块所有用例之后执行
def setUpModule() -> None: global driver driver = webdriver.Chrome() def tearDownModule() -> None: driver.quit() class MyTestCase(unittest.TestCase): def test_baidu(self): driver.get("https://www.baidu.com/") def test_tengxun(self): driver.get("https://www.qq.com/") def test_puls(self): c = 1 + 3 print(c) class MyTestCase2(unittest.TestCase): def test_baidu(self): driver.get("https://www.baidu.com/") def test_tengxun(self): driver.get("https://www.qq.com/") def test_puls(self): c = 1 + 3 print(c)
原文:https://www.cnblogs.com/amanda-yl/p/14817667.html