当前位置:  开发笔记 > 编程语言 > 正文

Python doctest:跳过整个块?

如何解决《Pythondoctest:跳过整个块?》经验,为你挑选了2个好方法。

我在类方法中有一个包含docstrings的Python模块,在模块docstring中有一个真实的例子.区别在于方法文档字符串经过精心设计,是完全可重复的测试,而真实世界的例子只是Linux shell中历史的一个副本 - 它碰巧调用了python解释器.

例如

"""
Real-world example:

# python2.5
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from packagename import module
>>> module.show_real_world_usage()
'Hello world!'
"""

class SomeClass(object):
    def someMethod(self):
        """
        >>> 1 == 1
        True
        """

我想运行doctest SomeClass.someMethod,但不是在模块的docstrings中.

Doctest的+SKIP指令仅适用于每行,这意味着在我的真实世界示例中添加10行.丑陋!

有没有办法让doctest跳过整个块?有点像HTML?



1> lambacck..:

在函数中包装示例,然后跳过函数调用:

"""
>>> def example():
...    from packagename import module
...    module.show_real_world_usage()
...
>>> example() # doctest: +SKIP
'Hello world!'
"""



2> RobM..:

我的解决方案是修剪3个字符>>>...领导者,我希望doctest跳过它们,使它们成为2个字符.

所以

"""
>>> from packagename import module
>>> module.show_real_world_usage()
'Hello world!'
"""

已经成为

"""
>> from packagename import module
>> module.show_real_world_usage()
'Hello world!'
"""

Epydoc并不像doctests那样显示它,但我可以忍受这个.不过,欢迎使用doctest中的skip-until-further-notice指令.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有