doctest

又一个Python自带标准库doctest

使用这个包可以把测试写在文档字符串中,在测试的同时起到文档的作用。格式要求:

# 先>>> 函数调用
# 下一行输出预期的结果
"""
>>> fun()
result
"""

EXAMPLE:

import doctest

def list_generator(number):
    """
    >>> list_generator(5)
    [0, 1, 2, 3, 4]
    """
    return [n for n in range(number)]

if __name__ == '__main__':
    doctest.testmod()

运行Python文件,如果没有错误,则不会输出内容。现在把list_generator稍微改变一下:

import doctest

def list_generator(number):
    """
    >>> list_generator(5)
    [0, 1, 2, 3, 4]
    """
    return [str(n) for n in range(number)]

if __name__ == '__main__':
    doctest.testmod()

运行文件,输出如下内容:

**********************************************************************
File "example.py", line 5, in __main__.list_generator
Failed example:
    list_generator(5)
Expected:
    [0, 1, 2, 3, 4]
Got:
    ['0', '1', '2', '3', '4']
**********************************************************************
1 items had failures:
   1 of   1 in __main__.list_generator
***Test Failed*** 1 failures.

By the way,如果你不想写:

if __name__ == '__main__':
    doctest.testmod()

那么,在运行Python文件的时候,需要:

# python example.py 之前这样运行
$ python example.py -v # 现在这样运行才能进行代码测试

results matching ""

    No results matching ""