【selenium学习中级篇 -25】Unittest框架 - 用例的组织
在一个项目中往往不可能只有一个用例,也不可能只有一个页面,所有这里就涉及到用例的组织方式
unittest最核心的四部分是:TestCase,TestSuite,TestFixture,TestRunner
1.TestCase,就是外面常说的用例,记住需要以test开头
2.TestSuite,就是测试套件,可以理解为多个用例的集合,一个套件里面管理多个用例
3.TestFixture,就是测试固件,就是执行测试代码之前和之后的清扫代码,就如我们上篇中讲的setUp(),tearDown(),之类的
4.TestRunner,用来执行加载测试用例,可以加载test case,也可以加载test suite
在TestSuites中新建TestRunner.py作为启动用例的入口
本文会先介绍三种组织用例的方式
1.addTest(),可以加载不同类里面的不同测试函数
2.makeSuit(),一次性加载一个类文件下所有的测试用例到suite中去
3.discover(),跑testsuite包下的所有测试用例,可以在discover中直接传入包名或者文件夹名称
addTest()
import unittest from TestSuites.test_baidu import TestBaiDuSearch from TestSuites.test_baidu_01 import TestBaiDuButton ''' addTest ''' suite = unittest.TestSuite() suite.addTest(TestBaiDuSearch("test_baidu")) suite.addTest(TestBaiDuSearch("test_baidu_hao123")) suite.addTest(TestBaiDuButton("test_baidu_more")) if __name__ == '__main__': runner = unittest.TextTestRunner() runner.run(suite)
makeSuit()
import unittest from TestSuites.test_baidu import TestBaiDuSearch from TestSuites.test_baidu_01 import TestBaiDuButton ''' makeSuit ''' suite = unittest.TestSuite(unittest.makeSuite(TestBaiDuSearch)) if __name__ == '__main__': runner = unittest.TextTestRunner() runner.run(suite)
discover()
import unittest from TestSuites.test_baidu import TestBaiDuSearch from TestSuites.test_baidu_01 import TestBaiDuButton ''' discover() ''' suite = unittest.TestLoader().discover("TestSuites") if __name__ == '__main__': runner = unittest.TextTestRunner() runner.run(suite)
我走的很慢,但从不后退