为了满足我的python单元测试需求,我最近从nose切换到了新的unittest2包。它能做我想做的一切,除了我不能得到它的"discover“命令来识别我代码中的doctests -我仍然需要使用nose来运行它们。这是不是没有实现,或者我在这里遗漏了什么?
发布于 2010-07-27 21:57:48
Unit2只发现常规的Python测试。为了让它运行您的doctest,恐怕您需要编写一些最小的样板。此外:即将推出的插件架构将使其中一些任务更容易实现自动化。
在此期间。您可能想看看tox (这里由unittest2创建者描述) http://www.voidspace.org.uk/python/weblog/arch_d7_2010_07_10.shtml
发布于 2011-07-22 04:32:47
告诉unit2您的doctest所需的模板实际上在当前的doctest文档中给出了,尽管我花了几分钟时间才找到它:
http://docs.python.org/library/doctest.html#unittest-api
请注意,您可以将模块名称传递给DocTestSuite
构造函数,而不必自己导入模块,这可以将样板文件的长度减半;它只需如下所示:
from doctest import DocTestSuite
from unittest import TestSuite
def load_tests(loader, tests, pattern):
suite = TestSuite()
suite.addTests(DocTestSuite('my.module.one'))
suite.addTests(DocTestSuite('my.module.two'))
suite.addTests(DocTestSuite('my.module.three'))
return suite
https://stackoverflow.com/questions/3342193
复制相似问题