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,无法进行配置,这在项目之间实现标准化,但是限制了项目的灵活性。
更多精彩
赞助商链接