【Android自动化】unittest测试框架关于用例执行的几种方法
1 # -*- coding:utf-8 -*- 2 import unittest 3 4 5 class test(unittest.TestCase): 6 7 def setUp(self): 8 print 'This is the setup msg' 9 10 def tearDown(self): 11 print 'This is the teardown msg' 12 13 def test1(self): 14 print 'This is the first testcase' 15 16 def test2(self): 17 print 'This is the second testcase' 18 19 def test3(self): 20 print 'This is the third testcase' 21 22 运行方法一: 23 if __name__ == '__main__': 24 unittest.main() 25 通过unittest.main()执行时,main会调用TextTestRunner中的run来执行 26 27 运行方法二: 28 suite = unittest.TestLoader().loadTestsFromTestCase(test) 29 unittest.TextTestRunner().run(suite) 30 通过创建一个测试套,将所有用例全部加载到测试套中,然后直接调用TextTestRunner方法能运行测试套(此时测试套中的用例执行还是无规则,不一定会按用例顺序进行执行) 31 32 运行方法三: 33 suite = unittest.TestSuite() 34 suite.addTest(test('test3')) 35 unittest.TextTestRunner().run(suite) 36 通过创建一个测试套,给测试套中增加一条测试用例,然后再调用TextTestRunner方法单独执行该测试用例 37 38 运行方法四: 39 suite = unittest.TestSuite() 40 suite.addTest(test('test3')) 41 suite.addTest(test('test1')) 42 unittest.TextTestRunner().run(suite) 43 通过创建一个测试套,给测试套中连续增加两条测试用例,然后再调用TextTestRunner方法执行该测试用例,此时会按照加载用例的顺序进行执行用例,但这种方法有点土,不强大(不建议使用) 44 45 运行方法五: 46 suite = unittest.TestSuite() 47 suite.addTests([test('test3'),test('test1'),test('test2')]) 48 unittest.TextTestRunner().run(suite) 49 通过创建一个测试套,直接通过addTests()方法,添加一个用例列表进去,然后再调用TextTestRunner方法执行测试用例,此种方法能让unitest按照想要的执行顺序进行执行用例(对用例执行顺序有要求的此方法比较建议使用) 50 51 运行方法六: 52 def runTest(testcaseclass,testcase=[]): 53 suite = unittest.TestSuite() 54 for case in testcase: 55 suite.addTest(testcaseclass(case)) 56 unittest.TextTestRunner().run(suite) 57 runTest(test,['test2','test3','test1']) 58 59 通过定义一个unitest运行方法,后面执行时直接调用该自定义方法,给上对应的赋值,程序就会按照想 要的执行程序进行执行(此种方法比较好,只要建立一个公共方法,后面在其它模块中直接调用,省去重复敲代码)