我们把测试固件分离到init.py,类名称为InitTest,代码如下:
import unittest from selenium import webdriver class InitTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get("http://www.baidu.com") self.driver.implicitly_wait(30) def tearDown(self): self.driver.quit() if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromModule('test.py') unittest.TextTestRunner(verbosity=2).run(suite)
测试类继承了InitTest,继承后,在测试类中直接编写要执行的测试用例,代码如下:、
import unittest from init import InitTest class BaiduTest(InitTest): def test_baidu_news(self): self.driver.find_element_by_link_text('新').click() def test_baidu_map(self): self.driver.find_element_by_link_text('新').click() if __name__ == '__main__': unittest.main()
首先要导入init模块中的InitTest类,测试类baidutest继承INITTEST类。这样执行测试类后,会先执行setup方法,在执行具体的测试用例,最后执行teardown方法。python的类继承的方式解决了在每个测试类中都需要编写测试固件的问题。