• python:unittest(测试框架)


    一,基本概念

    • TestCase:所有测试用例的基类
    • TestLoad:加载测试用例,返回TestSuite(测试套件)
    • TestSuite:创建测试套件
    • TextTestRunner:运行测试用例
    • TextTestResult:测试结果(包含 运行多少,错误多少,失败多少)

    二,创建测试用例类

    1. 必须继承TestCase
    2. 测试用例的名字必须以test开头
    3. 定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
    4. 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
    5. 调用unittest.main()启动自动测试
    6. 如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。

    三,有选择的测试

    • unittest.skip(reason)
    • unittest.skipIf(condition, reason)
    • unittest.skipUnless(condition, reason)
    • unittest.expectedFailure()
    # coding=utf-8
    
    
    class testclass:
        
        def sum(self , x, y):
            return x + y
    
        def sub(self , x, y):
            return x - y
    #coding=utf-8
    import unittest
    from myclass import myclass
    
    class simpleTest(unittest.TestCase):
        def setUp(self):
            print 'start test.....'
            self.tclass=myclass.testclass()
        
        def tearDown(self):
            print 'end test.....'
            
        def testsum(self):
            self.assertEqual(self.tclass.sum(1, 2),3,'sum test fail')
            
        def testsub(self):
            self.assertEqual(self.tclass.sub(2, 1),1, 'sub test fail')
    
    
    if __name__ == '__main__':
    #     suite=unittest.TestLoader().loadTestsFromTestCase(simpleTest)
    #     unittest.TextTestRunner.verbosity(2).run(suite)
        
        for key in dir(unittest):#查看该模块所有类
            print key
            
        unittest.main()
    #coding=utf-8
    import sys
    import unittest
    
    from myclass import myclass
    
    
    #测试模块中某一个类中的函数
    #定义两个测试用例
    class mytest(unittest.TestCase):
        def setUp(self):
            self.tclass=myclass.testclass()
            
        def tearDown(self):
            pass
        
        @unittest.skip("skipping")
        def testsum(self):
            self.assertEqual(self.tclass.sum(1, 2),3,'test sum fail')
            
        @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
        def testsub(self):
            self.assertEqual(self.tclass.sub(2, 1),1,'test sum fail')
        
    if __name__ == '__main__':
        suite = unittest.TestLoader().loadTestsFromTestCase(mytest)#构建测试套件
    #     suite = unittest.TestSuite([suite1, suite2])  可以添加多个套件
        result= unittest.TextTestRunner(verbosity=2).run(suite)
        print result
  • 相关阅读:
    k邻近
    C语言实现pwd—关于linux文件系统
    Linux多线程
    有关临时表
    毕设—线程池thread_pool(草)
    3-26
    3-25
    3-22
    关于中国神华
    3-20
  • 原文地址:https://www.cnblogs.com/dmir/p/5034245.html
Copyright © 2020-2023  润新知