Python 测试框架: 寻找要测试的模块
2010-09-22 11:22:53 来源:WEB开发网在比较长的文档中,由三个大于号组成的 Python 提示符 >>> 是一个非常明显的标志,它表示在 Python 提示上应该发生什么。正如在本系列的第一篇文章中看到的,这可以出现在作为文档的单独的文本文件中:
Doctest for truth and falsehood
-------------------------------
The truth values in Python, named "True" and "False",
are equivalent to the Boolean numbers one and zero.
>>> True == 1
True
>>> False == 0
True
这种说明还可以出现在源代码中模块、类或函数的 docstring 中:
def count_vowels(s):
"""Count the number of vowels in a string.
>>> count_vowels('aardvark')
3
>>> count_vowels('THX')
0
"""
return len( c for c in s if c in 'aeiou')
当这些测试出现在文本文件中时(比如第一个示例),文件就被称为 docfile。当它们出现在 Python 源代码中的 docstring 中时(比如第二个示例),它们就被称为 doctest。
因为 docfile 和 doctest 是编写作为测试使用的文档的常用方法(而且这也能够表明文档什么时候过时了),所以 py.test 和 nose 直接支持它们。(zope.testing 的用户必须使用标准 doctest 模块中的 DocTestSuite 类为每个文件手工创建 Python 测试用例)。
与用于寻找测试模块的规则一样,py.test 框架采用固定的过程支持 doctest,无法进行配置,这在项目之间实现标准化,但是限制了项目的灵活性。
更多精彩
赞助商链接