python实际项目在哪里用作单元测试部分的示例?

时间:2008-12-17 13:05:08

标签: python unit-testing

我正在寻找一个用于复制单元测试部件设计的python项目。

该项目应具备以下功能:

  1. 其代码几乎完全经过单元测试
  2. 代码分布在很多包中,还有一个级别的包
  3. 所有测试都可以使用单个命令运行,例如使用python test.py
  4. 我需要项目对所有包含的代码使用相同的测试约定。我看到了整个python项目,但各种软件包都使用不同的约定进行测试。例如,setuptools包使用unittest库的ad hoc自适应,而其他包不使用。

    我需要项目不使用临时或高度自定义的测试框架,因为我希望在我的项目中重用其测试架构。

5 个答案:

答案 0 :(得分:4)

也许Nose本身?

答案 1 :(得分:4)

Django是一个干净的项目,有很多单元测试。

Have a look他们建议您如何测试自己的项目。

Have a look在框架本身的单元测试代码中。

答案 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脚本来尝试启动测试。