十四.测试

1.doctest

  • 可以用来测试模块,但是要求模块中函数的文档必须写上例子
    #doctest可以用来测试模块。这要求模块内的函数注释必须写上测试例子
    import sys
    ModulePath=sys.path
    ModulePath.append("C:\Users\i2011\PycharmProjects\Python基础教程学习代码\charpter14---测试基础")
    import MyModule
    import doctest
    if __name__ == "__main__":
        print(doctest.testmod(MyModule))
    #--------------------------------------------------------------------------------
    #下面是模块内容,存放在MyModule.py中
    def square(x):
        ''' #写上具体的测试例子,能够用doctest方法进行测试
        >>> square(3)
        9
        >>> square(4)
        16
        >>> square(5)
        20
        '''
        return x*x

2.unittest

  • 可以用来测试函数
    def square(x):
        if x==7:
            return "Bug!"
        else:
            return x*x
    import unittest
    class ProductTestCase(unittest.TestCase):
        def test_integers(self):
            for x in range(-10,10):
                p=square(x)
                self.assertEqual(p,x*x,"Integer Failed")
        def test_floats(self):
            for x in range(-10,10):
                x=x/10
                p = square(x)
                self.assertEqual(p, x * x, "Float Failed")
    if __name__=="__main__":
        # 这个函数表示:实例化所有的TestCase子类,并运行所有名称以test打头的方法。
        unittest.main()

3.cProfile

  • 可以对运行进行时间分析
    #运行时间分析
    def add():
        count=0
        while count<=10000000:
            count+=1
        return
    import cProfile
    # cProfile.run("add()","AnalysisResult.txt") #分析结果存放到具体文件
    #
    # import pstats
    # p=pstats.Stats("AnalysisResult.txt") #查看分析结果
    # print(p)
    cProfile.run("add()")


原文地址:https://www.cnblogs.com/i201102053/p/10675619.html