测试套件
应用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