1 #coding=utf-8 2 3 import unittest 4 5 class Test1(unittest.TestCase): #定义一个类 (继承unittest.TestCase功能,才能使用这个功能) 6 def testcase1(self): 7 print 'aaa' 8 9 class Test2(unittest.TestCase): 10 def testcase2(self): 11 print'bbb' 12 13 def suite1(): 14 suite = unittest.TestSuite() #获取一个Suite对象 15 suite.addTest(Test1('testcase1')) #添加一个测试用例(类的名称('测试用例的名称')) 16 return suite 17 18 def suite2(): 19 suite = unittest.TestSuite() 20 suite.addTest(Test2('testcase2')) 21 return suite 22 23 def suite3(): 24 suite = unittest.TestSuite() 25 suite.addTest(Test1('testcase1')) #添加不同class下的测试用例,一个一个的添加 26 suite.addTest(Test2('testcase2')) 27 return suite 28 29 def suite4(): 30 suite11 = unittest.TestLoader().loadTestsFromTestCase(Test1) #通过Loader,一次性添加一个类的测试用例 31 suite22 = unittest.TestLoader().loadTestsFromTestCase(Test2) 32 suite = unittest.TestSuite([suite11, suite22]) #将两个suite 合成一个suite 33 return suite 34 35 def suite5(): 36 suite = unittest.TestLoader().loadTestsFromTestCase(Test1) #Loader和addTest 可以结合在一起用 37 suite.addTest(Test2('testcase2')) 38 return suite 39 40 def runner(suite): 41 unittest.TextTestRunner().run(suite) #执行suite 42 43 if __name__== '__main__': 44 runner(suite5())
unittest原名为PyUnit,是由java的JUnit衍生而来。对于单元测试,需要设置预先条件,对比预期结果和实际结果。
- 整体结构:unittest库提供了test cases, test suites, test fixtures,test runner:
- test case :通过继承TestCase类,我们可以创建一个test,或者一组tests
- test suites : 测试套件
- test fixtures : setup + test case + teardown结构
- test runner
所有的测试函数以test开头,test_XXX
参考:
1、python_unittest详解:http://www.jianshu.com/p/8e22c1213260
2、Python单元测试——深入理解unittest:http://blog.csdn.net/hackerain/article/details/24095117
3、python利用unittest进行测试用例执行的几种方式:http://blog.csdn.net/xiaoxinyu316/article/details/53170463
4、unittest常用的断言:http://blog.csdn.net/qq1124794084/article/details/51668672
5、import导入模块,导入类、导入类中方法:https://www.cnblogs.com/A4ril/p/6677866.html