草庐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 - 在单元测试中使用 doctests

我通常在我的模块中同时编写单元测试和文档测试。我想在运行测试套件时自动运行我所有的doctests。我认为这是可能的,但我在语法上遇到了困难。我有测试套件importunittestclassts(unittest.TestCase):deftest_null(self):self.assertTrue(True)if__name__=='__main__':unittest.main()我想将模块module1中的所有doctest添加到此套件中。我怎样才能做到这一点?我读过pythondocs,但我离成功还差得很远,在这里。添加行importdoctestimportmodule1

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