十四.测试
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()")