3

我最近从鼻子切换到新的 unittest2 包以满足我的 python 单元测试需求。它做了我想做的一切,除了我无法获得它的“发现”命令来识别我的代码中的文档测试——我仍然必须使用鼻子来运行它们。这没有实施还是我在这里遗漏了什么?

4

2 回答 2

3

Unit2 仅发现常规 Python 测试。为了让它运行您的文档测试,恐怕您需要编写一些最小的样板文件。另外:即将推出的插件架构将使其中一些任务的自动化变得容易。

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

于 2010-07-27T13:57:47.503 回答
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
于 2011-07-21T20:32:47.443 回答