python3:doctest助手/内部函数?

时间:2015-03-27 18:29:02

标签: python python-3.x doctest

如何进行以下工作以便运行帮助程序的测试?它没有。

def B():
    def helper():
        """
        >>> some doctest
        result
        """

...
if __name__ == "__main__":
    import doctest
    doctest.testmod() 

1 个答案:

答案 0 :(得分:2)

无法找到嵌套函数,因为在运行B()函数之前,函数对象不存在 。您必须返回作为调用B()函数的结果,然后将其分配给__test__字典:

def B()
    def helper()
        """
        >>> some doctest
        result
        """

    return helper    

# ...

if __name__ == "__main__":
    import doctest
    __test__ = {'helper': B()}
    doctest.testmod() 

doctest.testmod()查找__test__全局字典,并查找值中任何类,方法,函数和模块的文档字符串;任何字符串值都直接作为docstring测试执行。

如果B()除了其他之外,那么您可能应该将helper()改为一个简单的全局函数:

def B():
    # uses helper

def helper()
    """
    >>> some doctest
    result
    """

# ...

if __name__ == "__main__":
    import doctest
    doctest.testmod()