是否可以使用unit2运行doctests

时间:2010-07-27 09:18:18

标签: python testing nose unittest2

我最近从鼻子切换到新的unittest2包,用于我的python单元测试需求。它做了我想要的一切,除了我无法通过它的“发现”命令来识别代码中的doctests这一事实 - 我仍然需要使用nose来运行它们。这是没有实现还是我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

Unit2仅发现常规的Python测试。为了让它运行你的doctests,我担心你需要写一些最小的样板。另外:即将推出的插件架构可以轻松实现其中一些任务的自动化。

与此同时。你可能想看看tox(由unittest2创建者描述)http://www.voidspace.org.uk/python/weblog/arch_d7_2010_07_10.shtml

答案 1 :(得分:1)

告诉unit2关于你的doctests的样板实际上是在当前的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