总结一下经常使用的unittest中的方法
1,class XX(unittest.TextCase):继承unittest.TextCase的类
2,标记以test开头的方法就是一个单独的测试用例,setup,teardown两个实用的方法与区别见图
3,执行顺序是我们最关心的,unittest 框架默认根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z
目前我还在定义方法名称时,加数字,强迫症,好的一些方法还要后面发觉
4,(1)"单独执行一个测试用例test"#不要忘记写类的名称,标记是在那个类中的测试用例.
# suite = unittest.TestSuite() # suite.addTest(ceshi('test_003')) # runner = unittest.TextTestRunner() # runner.run(suite) (2)"运行多个测试用例test,注:加s,一定要加()" # suite = unittest.TestSuite() # tests=[ceshi('test_001'),ceshi('test_002')] # suite.addTests(tests)#这个地方要加S,并且传入的是一个列表 # runner = unittest.TextTestRunner(verbosity=2) # runner.run(suite) (3)"按照类(测试类class)来执行" # suite = unittest.TestSuite(unittest.makeSuite(ceshi)) # runner = unittest.TextTestRunner() # runner.run(suite) (4)"加载整个测试类来执行" suite = unittest.TestLoader().loadTestsFromTestCase(ceshiONE) runner = unittest.TextTestRunner(verbosity=1) runner.run(suite) (5)"加载模块,也就是一个py文件来进行执行"#在unittest模式中执行,普通执行不行的 # suite = unittest.TestLoader().loadTestsFromModule('F1.py') # runner = unittest.TextTestRunner(verbosity=2) # runner.run(suite) (6)批量执行测试用例使用unittest.TestLoader().discover()
"""注意事项 discover是递归匹配文件的,如果设定的目录是测试用例的根目录的话, discover会去匹配每个子目录下的所有用例,匹配成功的用例就加载到discover, 但是在这里需要注意一点,存放用例的目录属性必须是python package, 必须要有__init__.py,不然不会获取成功 """ """ start_dir:要测试的模块名或测试用例的目录。 pattent=‘test*.py’:表示用例文件名的匹配原则。此处匹配文件名一test开头的所有.py类型文件,*表示任意多个字符。 top_level_dir=None :测试模块的顶层目录,如果没有顶层目录,默认为None。 """ def allTests(): #1,找到所有以XX开头的文件, #2,加载到discover中 #3,discover方法中的参数start_dir, pattern='test*.py', top_level_dir=None suite = unittest.TestLoader().discover( start_dir=os.path.dirname(__file__), pattern='F*.py',#匹配测试用例,以什么开头的*.py就可以 ) return suite unittest.TextTestRunner(verbosity=2).run(allTests())