WEB开发网
开发学院软件开发Python Python 测试框架: 选择和运行测试 阅读

Python 测试框架: 选择和运行测试

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示:这三篇系列文章 的 第一篇文章 讨论了标准测试框架(比如 zope.testing、py.test 和 nose)给 Python 测试领域带来的革命性影响,这些框架支持更简单的测试方法,Python 测试框架: 选择和运行测试,让项目不再需要为运行测试编写和维护专门的代码,第二篇文章 讨论了这些自动化解决方案如何搜索

这三篇系列文章 的 第一篇文章 讨论了标准测试框架(比如 zope.testing、py.test 和 nose)给 Python 测试领域带来的革命性影响。这些框架支持更简单的测试方法,让项目不再需要为运行测试编写和维护专门的代码。第二篇文章 讨论了这些自动化解决方案如何搜索 Python 包以识别可能包含测试的模块。

本文讨论下一步,介绍框架在找到测试模块之后如何发现其中的待测试项。还讨论一些细节,比如这三种框架对共同的 setup 和 teardown 代码的支持情况。

Zope 框架中的测试发现

决定了感兴趣的模块列表之后,如何发现其中的实际测试呢?

对于 zope.testing 框架,您会发现 Zope 社区有一些有意思的现象。Zope 社区并不为解决每个问题构建大型工具,而是构建小型的功能有限的工具,这些工具能够连接在一起。目前,zope.testing 模块本身实际上根本没有提供检测测试的机制!

相反,zope.testing 让程序员自己寻找每个模块中需要运行的测试并把它们集中在一个列表中。它在每个测试模块中只寻找一个东西:test_suite() 函数,这个函数应该返回标准 unittest.TestSuite 类的实例,其中包含模块定义的测试。

使用 zope.testing 的一些程序员在 test_suite() 函数中手工地创建和维护测试列表。其他程序员通过编写定制代码发现已经定义的可用测试。但是,最有意思的方法是使用另一个 Zope 包 z3c.testsetup,它能够像其他现代 Python 测试框架一样自动地发现包中的测试。

这一现象再次说明 Zope 程序员倾向于编写小型代码块,然后使用它们构建框架,而不是编写大型的全面解决方案。z3c.testsetup 包不包含可以选择测试的命令行界面,也不包含可以显示测试结果的输出模块;它完全依靠 zope.testing 实现这些功能。

1 2 3 4 5 6  下一页

Tags:Python 框架

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接