doctest测试用例放在两个地方:
1、函数或者方法下的注释里面
2、模块的开头
它可以用来测试代码,以测试该函数、类、类方法的功能是否正确。
在函数、类或方法的说明性文档中,以>>>作为开始的内容表示一行测试代码,并且接下来的一行则明确该测试代码的输出结果。
代码参考如下:
# content of test_doctest.py def something(): """ a doctest in a docstring >>> something() 42 """ return 42 def num(n): """ function:斐波那契数列 >>> num(5) [0, 1, 1, 2, 3] """ titles = [] a = 0 b = 1 for i in range(n): titles.append(a) a, b = b, a+b return titles if __name__ == '__main__': import doctest doctest.testmod(verbose=True) |
结果:
C:\Users\Administrator\PycharmProjects\untitled2\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/untitled2/forpytest/test_doctest.py Trying: num(5) Expecting: [0, 1, 1, 2, 3] ok Trying: something() Expecting: 42 ok 1 items had no tests: __main__ 2 items passed all tests: 1 tests in __main__.num 1 tests in __main__.something 2 tests in 3 items. 2 passed and 0 failed. Test passed. Process finished with exit code 0 |
在执行 doctest.testmod() 函数时,它会执行该模块中各成员说明性文档包含的测试代码,并将执行结果和指定的结果做比对,如果一致,则什么也不输出;反之,则输出以下提示信息:
1. 显示在哪个源文件的哪一行。
2. Failed example,显示是哪个测试用例出错了。
3. Expected,显示程序期望的输出结果。也就是在“>>>命令”的下一行给出的运行结果,它就是期望结果。
4. Got,显示程序实际运行产生的输出结果。只有当实际运行产生的输出结果与期望结果一致时,才表明该测试用例通过。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理