我正在寻找一个用于复制单元测试部件设计的python项目。
该项目应具备以下功能:
python test.py
我需要项目对所有包含的代码使用相同的测试约定。我看到了整个python项目,但各种软件包都使用不同的约定进行测试。例如,setuptools包使用unittest库的ad hoc自适应,而其他包不使用。
我需要项目不使用临时或高度自定义的测试框架,因为我希望在我的项目中重用其测试架构。
答案 0 :(得分:4)
也许Nose本身?
答案 1 :(得分:4)
答案 2 :(得分:1)
嗯,你的规范直接指向一个有点着名的开源项目Python Library。查看python/trunk/Lib/test/regrtest.py,它将在test directory中找到名称为“test_ *”的所有模块,然后运行它们。
答案 3 :(得分:0)
首先,请阅读unittest。该文档包含示例。
其次,由于您需要包(而不是模块),因此列表更短。 Python 2.5发行版中有15个包。随机选一个。这是可能符合您的一些标准的子集。
bsddb:7个模块 - 很多测试 - test_all.py
ctypes:4个模块 - 测试 - runtests.py
distutils:许多模块 - 测试 - test_dist.py
电子邮件:许多模块 - 测试 - test_email.py
sqlite3 - 2个模块 - 测试 - (不清楚是否有整体测试,我厌倦了看)
答案 4 :(得分:0)
您可以查看python的源代码。其中大部分都是用python编写的。特别是单元测试模块。
< rant> python模块组织和unittest特别是黑色艺术。它让我想起了perl的混合(奇怪的,没有文档的解决方法,每个基本的东西 - 单元测试手册,甚至从未显示如何导入外部模块)和java(限制性目录和命名约定)< / rant>
查看unittest module的单元测试设置。 (没有源浏览,你必须hg clone
那个url)
这是启动unittests的setup.py部分,除了其他所有部分:
# above here, juggle paths
from setuptools import setup
params['entry_points'] = {
'console_scripts': [
'unit2 = unittest2.__main__:main_',
],
}
params['test_suite'] = 'unittest2.collector'
setup(**params)
甚至他们所做的一切仍然不足以简单地运行setup.py test
。您将了解到大多数团队已经放弃了您的要求,只需将test_run.py等添加到项目中即可。我知道我所做的所有项目都是。
看看上面的鼻子答案,这是一个很好的答案,他们的setup.py非常干净,尽管有一些2,3,2到3支持热潮。这是一个旨在使单元测试(和一般测试)更容易和更方便的项目。好吧,即使他们在项目根目录中有一个selftest.py
脚本来尝试启动测试。