Python 测试框架: 寻找要测试的模块
2010-09-22 11:22:53 来源:WEB开发网py.test 和 nosetests 工具甚至有几个相同的命令行选项,比如 -v 选项在执行测试时输出测试的名称。可能过不了多久,只要程序员熟悉这两种工具,就能够运行大多数公共 Python 包的测试。
但是,还有最后一级标准化!当今的大多数 Python 项目在源代码中包含一个顶级 setup.py 文件,它支持下面的命令:
# Common commands supported by setup.py files
$ python setup.py build
$ python setup.py install
当今的许多 Python 项目使用 setuptools 包支持标准 Python 没有提供的 setup.py 命令,包括运行项目的所有测试的 test 命令:
# If a project's setup.py uses "setuptools"
# then it will provide a "test" command too
$ python setup.py test
这是标准化的最高层次:如果项目都以一致的方式支持 setup.py test,开发人员就可以通过统一的接口运行所有 Python 包的测试套件。nose 通过提供一个入口点支持 setup.py,这个入口点调用与 nosetests 命令相同的测试运行例程:
# A setup.py file that uses "nose" for testing
from setuptools import setup
setup(
# ...
# package metadata
# ...
setup_requires = ['nose'],
test_suite = 'nose.collector',
)
当然,即使项目提供了 setup.py 入口点,大多数开发人员可能仍然使用 nosetests,因为 nosetests 提供更强大的命令行选项。但是对于新的开发人员,如果只想在调试 bug 或添加新特性之前检查包是否能够在他的平台上工作,那么 test_suite 入口点是非常方便的。
更多精彩
赞助商链接