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