zoukankan      html  css  js  c++  java
  • Python单元测试工具doctest和unittest

    Python标准库包含两个测试工具。

    doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。

    unittest:一个通用的测试框架。

    一、使用doctest进行单元测试

    创建文件mymath.py,内容

    def square(x):
        '''
        计算平方并返回结果(下面是单元测试的格式)
        >>> square(2)
        4
        >>> square(3)
        9
        '''
        return x * x
    
    if __name__ == '__main__':
        import doctest,mymath
        doctest.testmod(mymath)

    在Sublime Text 3中运行只是提示[Finished in 0.2s]。

    在cmd命令下切换到mymath.py所在目录,运行python mymath.py -v后,有提示测试详细信息,测试通过。如下图:

    把函数square里面的return x * x 改成 return x / x。

    再次运行python mymath.py -v,提示测试不通过,如下图:

    二、使用unittest进行单元测试

     还是用mymath.py测试,内容:

    def square(x):    
        return x * x

    新建单元测试文件test_math.py,内容:

    import unittest, mymath
    
    class mathTestCase(unittest.TestCase):    
        
        def test_square(self):        
            self.assertEqual(mymath.square(2), 4)
            self.assertEqual(mymath.square(3), 9)
    
    if __name__ == '__main__':
        unittest.main()

    运行后,显示OK 测试通过。

    .
    ----------------------------------------------------------------------
    Ran 1 test in 0.000s
    
    OK

    把函数square里面的return x * x 改成 return x / x。

    再次运行,这次显示FAILED 测试不通过。

    F
    ======================================================================
    FAIL: test_square (__main__.mathTestCase)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "D:projectspython	est_math.py", line 6, in test_square
        self.assertEqual(mymath.square(2), 4)
    AssertionError: 1.0 != 4
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.000s
    
    FAILED (failures=1)
  • 相关阅读:
    union 和 union all的区别
    JDBC中PreparedStatement相比Statement的好处
    25个经典的Spring面试问答
    MySQL 事务
    漫谈Linux下的音频问题(转)
    监控 Linux 性能的 18 个命令行工具(转)
    在终端中用默认程序打开文件(转)
    【转】使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
    Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)
    压缩解压命令小结
  • 原文地址:https://www.cnblogs.com/gdjlc/p/11415567.html
Copyright © 2011-2022 走看看