Python 测试框架: 选择和运行测试
2009-09-06 00:00:00 来源:WEB开发网关于包范围和模块范围的 setup 和 teardown 函数的更多信息,请参考 nose 文档;除了其他信息之外,您会发现在调用 setup 和 teardown 函数方面有许多选择。(同样,nose不太鼓励不同的项目以相同方式编写测试,因此不利于阅读其他项目的代码)。但是,它们提供非常强大的分组方式,不但可以按照结构,还可以按语义将函数分组到包和模块中(把在相同环境中运行的测试放在一起)。
在一种情况下,nose 不考虑 setup 和 teardown 函数的名称:使用 @with_setup 修饰符为某一函数显式地指定它们。同样,详细信息请参考 nose 文档。在这里,我只想提醒您注意一点:因为在 Python 中函数是一级对象,所以可以给某个修饰符分配名称并反复使用它:
# Naming a with_setup decorator
firefox_test = with_setup(firefox_setup, firefox_teardown)
@firefox_test
def test_index_click():
...
@firefox_test
def test_index_menu():
...
最后,在 @with_setup 修饰符中指定的或作为 unittest.TestCase 子类中的方法提供的 setup 和 teardown 函数对于相关的每个函数或测试运行一次,而在模块级或包级向 nose 提供的 setup 和 teardown 代码对于整个测试集只运行一次。因此,不要认为这样的测试是完全互相隔离的:它们会共享在模块或包的 setup 例程中创建的资源拷贝。
结束语
恭喜!现在您了解了不同的测试框架在检测测试和安排运行测试方面提供的支持。本系列的最后一篇文章将讨论使用测试框架的好处:强大的测试选择选项、报告工具和调试支持帮助我们更好地利用测试结果。最后,我们将讨论如何在这三种框架中选择最适合自己的框架。
更多精彩
赞助商链接