zoukankan      html  css  js  c++  java
  • 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()
     
  • 相关阅读:
    SSM配置后可以访问静态html文件但无法访问其他后台接口的解决方案
    使用Idea部署SSM项目后,访问路径为url:8080/项目名_war_exploded的解决方案
    gym102302E_Chi's performance
    Linux命令之wc(Word Count)
    【贪心算法】最大整数
    贪心算法讲解及例题
    【贪心算法】均分纸牌
    【贪心算法】背包问题
    【基础题】字符串替换
    【基础题】对称排序
  • 原文地址:https://www.cnblogs.com/hupilan521/p/9262921.html
Copyright © 2011-2022 走看看