草庐IT

doctests

全部标签

python - doctest 本地定义的函数

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

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 - 在单元测试中使用 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 - Python doctest 是否不需要单元测试?

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

python - 如何在 Python 2.x 和 3.x 中使用 doctest 测试异常?

我在模块spam中定义了一个异常类SpamException。现在我想测试一个引发此异常的函数spam_function。所以我写了下面的doctest。>>>spam_function()Traceback(mostrecentcalllast):....SpamException测试在Python2.x上成功,但在Python3.x上测试失败。以下测试适用于Python3.x。>>>spam_function()Traceback(mostrecentcalllast):....spam.SpamException这里的显着区别是在异常名称中包含了模块名称。那么,如何编写适用于Py

python - python 2 doctest 怎么会失败并且失败消息中的值没有差异?

我在Windows中使用Python2.7.9。我有一个UTF-8编码的python脚本文件,内容如下:#coding=utf-8deftest_func():u""">>>test_func()u'☃'"""returnu'☃'当我运行doctest时,我遇到了一个奇怪的失败:Failedexample:test_func()Expected:u'\u2603'Got:u'\u2603'无论是通过我通常使用的IDE(IDEAIntelliJ)还是从命令行启动doctests,我都会看到同样的失败输出:>x:\my_virtualenv\Scripts\python.exe-mdoct

python - python 2 doctest 怎么会失败并且失败消息中的值没有差异?

我在Windows中使用Python2.7.9。我有一个UTF-8编码的python脚本文件,内容如下:#coding=utf-8deftest_func():u""">>>test_func()u'☃'"""returnu'☃'当我运行doctest时,我遇到了一个奇怪的失败:Failedexample:test_func()Expected:u'\u2603'Got:u'\u2603'无论是通过我通常使用的IDE(IDEAIntelliJ)还是从命令行启动doctests,我都会看到同样的失败输出:>x:\my_virtualenv\Scripts\python.exe-mdoct

python - 如何将 doctests 与 unittest 的测试发现相结合?

我编写了一个python脚本来自动为我完成所有测试,并生成一个HTML报告。前几天我发现了用于单元测试的discover,它让我可以在给定目录中运行所有单元测试而无需明确命名它们,我真的很想能够以相同的方式进行我的文档测试,而不是必须显式导入每个模块。我在https://docs.python.org/2/library/doctest.html找到了一些关于如何执行此操作的信息但并没有真正明白。你能帮我在我的doctests中使用discover吗?Pythontestdiscoverywithdoctests,coverageandparallelism是相关的,但仍然没有回答我的