我们把测试固件分离到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的类继承的方式解决了在每个测试类中都需要编写测试固件的问题。