• 技术文章 >Python技术 >Python基础教程

    python中doctest如何嵌入源码?

    2020-11-06 16:02:03原创1539

    之前看过文档测试的小伙伴,已经了解到了它的妙用。doctest属于python文档测试中的模块,有两种使用方式。今天就doctest嵌入源码,小编为大家进行详细讲解。


    下面的代码只有一个函数,里面嵌入了两个doctest测试用例,文件名为naruto.py:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    '''

    这个例子展示如何在源码中嵌入doctest用例。

    '>>>' 开头的行就是doctest测试用例。

    不带 '>>>' 的行就是测试用例的输出。

    如果实际运行的结果与期望的结果不一致,就标记为测试失败。

    '''

    def multiply(a, b):

        """

        >>> multiply(4, 3)

        12

        >>> multiply('a', 3)

        'aaa'

        """

        return a * b

    if __name__=='__main__':

        import doctest

        doctest.testmod(verbose=True)


    有两个地方可以放doctest测试用例,一个位置是模块的最开头,另一个位置是函数声明语句的下一行(就像上面的例子这样)。除此之外的其它地方不能放,放了也不会执行。

    verbose参数,如果设置为True则在执行测试的时候会输出详细信息。默认是False,表示运行测试时,只有失败的用例会输出详细信息,成功的测试用例不会输出任何信息。

    将上面提到的文件放在D盘(或者其他你觉得方便的目录),打开cmd命令行,切换到naruto.py所在的目录(我的在D盘),输入下面代码:


    1

    python naruto.py


    输出结果为:


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    Trying:

        multiply(4, 3)

    Expecting:

        12

    ok

    Trying:

        multiply('a', 3)

    Expecting:

        'aaa'

    ok

    1 items had no tests:

        __main__

    1 items passed all tests:

       2 tests in __main__.multiply

    2 tests in 2 items.

    2 passed and 0 failed.

    Test passed.


    上面启动测试的方式是在__main__函数中调用了doctest.testmod()方法。

    如果__main__函数有其他用途,不方便调用doctest.testmod()方法,那么可以用另外一种执行测试的方法,在cmd中输入:


    1

    2

    $ python -m doctest naurto.py

    $ python -m doctest -v naruto.py


    以上就是python中doctest嵌入源码的方法。更多Python学习推荐:PyThon学习网教学中心

    专题推荐:doctest嵌入源码
    上一篇:如何使用python做文档测试? 下一篇:python中doctest如何放到独立文件?

    相关文章推荐

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网