草庐IT

python:doctest我的github-markdown文件?

我想从这个文件运行doctests,但我不清楚如何完成它:README.md:#WELCOME!Thislibraryishelpfulandwillhelpyouin_many_ways!Forexample:```>>>importlibrary>>>library.helps()True```(旁白:谁能帮我把这个高亮显示为markdown?) 最佳答案 您可以在命令行上的README上运行doctest:python-mdoctest-vREADME.md-mparameter告诉Python将以下模块作为脚本运行。When

python - Doctest 无法识别 __future__.division

我编写了以下doctestx.doctest:Thisissomething:>>>x=3+4foobarsomethingelse:>>>from__future__importdivision>>>y=15>>>z=int('24')>>>m=z/y>>>print(m)1.6但是当我在python2.7.11上运行python-mdoctestx.doctest时,doctest无法识别from__future__importdivision:*********************************************************************

python - doctest 本地定义的函数

有没有办法对本地定义的函数进行doctest?作为一个例子,我想要deffoo():""">>>foo()testfoo"""deffoo2():""">>>1/0"""print'testfoo'foo2()不通过测试。但我仍然不想让整个模块的foo2成为全局... 最佳答案 谢谢。我已经担心没有办法绕过文档字符串之外的代码。我仍然认为可能有一个技巧可以导入函数的局部变量,从而访问嵌套函数。无论如何,使用Alex方法的解决方案应该是deffoo(debug=False):""">>>foo()testfoo>>>foo(debug

Python 文档测试 : result with multiple lines

我无法让doctest处理包含多行且开头可能包含空行的结果。这可能是由缩进和解析问题引起的。我找到了一些解决方案:将想要的结果写入文件,doctest将结果与文件内容进行比较。将结果的散列值与已知散列值进行比较。这种方法的主要缺点是,doctest的读者对期望的结果知之甚少。找到一种使doctest处理多行结果的方法。使用unittest代替doctest。有什么想法吗?代码:>>>data_lists=[{"Averageexecution":[1,2,3,2,3]},...{"Topexecution":[3,4,5,7,8,11,6]},...{"Currentexecution

python - 使用 doctest 测试警告

我想使用doctests测试某些警告的存在。例如,假设我有以下模块:fromwarningsimportwarnclassFoo(object):"""InstantiatingFooalwaysgivesawarning:>>>foo=Foo()testdocs.py:14:UserWarning:Boo!warn("Boo!",UserWarning)>>>"""def__init__(self):warn("Boo!",UserWarning)如果我运行python-mdoctesttestdocs.py以在我的类中运行doctest并确保打印警告,我得到:testdocs.py

python - 使用 if __name__ == '__main__' : for tests

当您编写一些自给自足的脚本时,使用if__name__=='__main__'作为编写测试的地方是不是一个坏主意? 最佳答案 这实际上取决于您的代码和脚本的目的。对于大型和复杂的项目,您肯定必须将所有测试放在一个单独的地方。但是在处理一些小的事情时,将测试与代码一起进行可能是一个很好的解决方案-这是doctest的主要思想(这是一个很棒的Python模块,允许您在文档字符串中编写测试)。在这种情况下,您的if__name__=='__main__'将如下所示:if__name__=="__main__":importdoctestd

python - 对 Python doctests 的多版本支持

我正在这样写我的doctests:>>>some_function(a=1,b=2){u'id':u'123',u'name':u'abc'}这对Python版本2.5、2.6和2.7工作正常,但对Python3失败并出现以下错误:Expected:{u'id':u'123',u'name':u'abc'}Got:{'id':'123','name':'abc'}问题是如果我这样写我的文档测试:>>>some_function(a=1,b=2){'id':'123','name':'abc'}它们仅适用于Python3,在Python2版本上失败。我的问题是如何使其跨版本兼容?

Python:如何在 doctest 中定义一个类?

我想使用doctest注释block来演示特定基类的用法,但是这不能通过doctest完成,或者我做错了什么。这是我的简单演示代码。classMyClass(object):'''>>>m=MyClass()>>>printm.x1>>>classA(MyClass):>>>def__init__(self):>>>super(A,self).__init__()>>>>>>a=A()>>>printa.x1'''def__init__(self):self.x=1if__name__=="__main__":importdoctestdoctest.testmod()代码没有运行。这

Python 文档测试 : Skip entire block?

我在类方法中有一个带有文档字符串的Python模块,在模块文档字符串中有一个真实示例。区别在于方法文档字符串经过精心设计,可以完全重复测试,而真实世界的示例只是Linuxshell历史记录的复制粘贴——它恰好调用了python解释器。例如"""Real-worldexample:#python2.5Python2.5(release25-maint,Jul202008,20:47:25)[GCC4.1.220061115(prerelease)(Debian4.1.1-21)]onlinux2Type"help","copyright","credits"or"license"form

python - Python doctest 是否不需要单元测试?

我所在项目的一位开发人员认为,文档测试与单元测试一样好,如果一段代码经过文档测试,则不需要进行单元测试。我认为情况并非如此。任何人都可以提供一些可靠的、理想地引用的示例来支持或反对doctest取代单元测试的需要的论点吗?谢谢-丹尼尔编辑:任何人都可以提供表明文档测试不应取代单元测试的引用吗? 最佳答案 我(ab)使用doctest代替unittest,回到我开始gmpy的时候很多年前的项目——你可以浏览它的源代码,看到所有的功能都用doctests进行了彻底的测试(这个功能是由一个C编码的Python扩展提供的,上次我用它进行覆盖