• python的unitest的简单使用


    python的unitest的简单使用

    unittest提供一个TestLoader类用于自动创建一个测试集并把单个测试放入到测试集中。
    TestLoader自动运行测试用例以test开头的方法的测试方法。
    #coding=utf8 
    '''
    unittest提供一个TestLoader类用于自动创建一个测试集并把单个测试放入到测试集中。
    TestLoader自动运行测试用例以test开头的方法的测试方法。
    在多个测试用例在决定运行哪个测试用例的策略是通过内建函数对测试函数名排序决定的。
    通常习惯将测试集组合在一起,以便系统一次运行所有的测试用例。
    TestSuite实例添加到一个TestSuite中就像把一个TestCase实例添加到一个TestSuite中。
    -----------------------------------------------------------------------------------------
    suite1=module1.TheTestSuite()
    suite2=module2.TheTestSuite()
    alltests=unittest.TestSuite([suite1,suite2])
    -----------------------------------------------------------------------------------------
    可以将测试用例和测试套件的定义放在与要测试的代码相同的模块中,但将测试代码放在单独的模块中有几个好处:
    1、测试模块可以从命令行独立运行。
    2、测试代码可以更容易地与运输代码分开。
    3、有更少的诱惑改变测试代码,以适应代码测试没有一个很好的理由。
    4、测试代码的修改频率要比它测试的代码少得多。
    5、测试代码可以更容易重构。
    6、用C编写的模块的测试必须在单独的模块中,所以为什么不一致?
    7、如果测试策略更改,则不需要更改源代码。
    '''
    from __future__ import division
    from Lib.HTMLTestRunner import HTMLTestRunner
    from unittest  import TestCase,TestLoader,TestSuite
    from source.calcutor import calculatorClass
     
    class TestMul(TestCase):
        def setUp(self):
            pass
        
        def test_defaultMul(self):
            cal=calculatorClass()
            self.assertEqual(cal.mul(),200 , "The result should be equal 200")
        
        def test_negtiveMul(self):
            cal=calculatorClass(-10,-25)
            self.assertEqual(cal.mul(),250 , "The result should be equal 250")
            
        def test_floatMul(self):
            cal=calculatorClass(0.25,0.4)
            self.assertEqual(cal.mul(),0.1, "The result should be equal 0.1")
        
        def tearDown(self):
            pass
        
    class TestDiv(TestCase):
        def setUp(self):
            pass
        
        def test_defaultDiv(self):
            cal=calculatorClass()
            self.assertEqual(cal.mul(),0.5 , "The result should be equal 0.5")
        
        def test_negtiveDiv(self):
            cal=calculatorClass(-10,-25)
            self.assertEqual(cal.mul(),0.4 , "The result should be equal 250")
            
        def test_floatDiv(self):
            cal=calculatorClass(0.24,0.4)
            self.assertEqual(cal.mul(),0.6, "The result should be equal 0.1")
        
        def tearDown(self):
            pass
                 
    def allTest():
        ''' 创建测试集'''   
        suite1=TestLoader().loadTestsFromTestCase(TestMul)
        suite2=TestLoader().loadTestsFromTestCase(TestDiv)
        alltests=TestSuite([suite1,suite2])
        return alltests
     
    if __name__=="__main__":
        '''创建保存测试结果的文件'''
        html=file("..\report.html","wb+")
        '''调用HTMLTestRunner类生成html格式测试运行报告'''
        runner=HTMLTestRunner(stream=html,title="Test Report",description="The state of the run testcase")
        runner.run(allTest())
        html.close()
     
  • 相关阅读:
    cocos2dx 2.0 学习笔记简单动画
    几种插入数据的方法
    c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
    C#高效编程改进C#代码的50个行之有效的办法摘抄笔记
    获取两个日期之间的每一天
    取SQL中某个字段的后两位
    该行已经属于另一个表 的解决办法
    一个实体对象不能由多个 IEntityChangeTracker 实例引用
    MVC返回JSON,IE下无法接收JSON,IE下JSON提示另存为
    entity framework DbContext Attach判断
  • 原文地址:https://www.cnblogs.com/hupilan521/p/9262921.html
Copyright © 2020-2023  润新知