测试套件
应用unittest的Test Suite特性,可以将不同的测试组成一个逻辑组,然后设置统一的测试套来一起执行测试。通过TestSuite、TestLoader类来创建测试套件,最后用TestRunner类来执行测试套件。
在使用之前我们为例子(百度)添加一个新的测试,用来检验主页。新的测试代码如下 :
import unittest from selenium import webdriver class BaiduHomePageTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome() cls.driver.implicitly_wait(30) cls.driver.maximize_window() cls.driver.get('https://www.baidu.com') def test_baidu_title(self): tag = self.driver.title self.assertEqual("百度一下,你就知道",tag) def test_baidu_homepape(self): tag = self.driver.find_element_by_link_text("关于百度").text self.assertIn("百度",tag) @classmethod def tearDownClass(cls): cls.driver.quit() if __name__ == '__main__': unittest.main(verbosity=2)
然后将把新的测试和之前的测试放到一个测试组件中,代码如下:
import unittest from searchtests import BaiduSearchTest from homepagetests import BaiduHomePageTest #get all tests from BaiduSearchTest and BaiduHomePageTest class search_tests = unittest.TestLoader().loadTestsFromTestCase(BaiduSearchTest) home_page_tests = unittest.TestLoader().loadTestsFromTestCase(BaiduHomePageTest) #create a test suite combing search_tests and home_page_tests test_suite = unittest.TestSuite([home_page_tests, search_tests]) #run the suite unittest.TextTestRunner(verbosity=2).run(test_suite)
使用TestLoader类,将得到指定测试文件中的所有测试方法,用TestSuite类创建测试套件,最后TestRunner类将通过调用测试套件来运行文件中的所有测试。
运行结果如下:
要了解更多关于TestSuite的信息参考:
https://docs.python.org/3.6/library/unittest.html#unittest.TestSuite