Python 中的测试框架
2007-03-30 12:35:07 来源:WEB开发网核心提示: 清单 6. 来自 test_all.py 的成功输出$ python2.3 test_all.pydoctest of test_basic.show ... okCheck for sample XML files, NS and BASIC ... okImport the gnosi
清单 6. 来自 test_all.py 的成功输出
$ python2.3 test_all.py
doctest of test_basic.show ... ok
Check for sample XML files, NS and BASIC ... ok
Import the gnosis.xml.objectify library ... ok
Raise SyntaxError on non-setup namespace XML ... ok
Sucessfully objectify NS after setup ... ok
Objectify namespace-free XML document ... ok
Successfully objectify BASIC despite extra setup ... ok
----------------------------------------------------------------------
Ran 7 tests in 0.052s
OK
注意对执行的测试的描述:在使用 unittest 测试方法的情况下,他们的描述来自于相应的 docstring 函数。如果您没有指定文档字符串,类和方法名被用作最合适的描述。来看一下如果一些测试失败时我们会得到什么,同样有趣(为本文去掉了回溯细节):
清单 7. 当一些测试失败时的结果
$ mv testns.xml testns.xml# && python2.3 test_all.py 2>&1 | head -7
doctest of test_basic.show ... ok
Check for sample XML files, NS and BASIC ... FAIL
Import the gnosis.xml.objectify library ... ok
Raise SyntaxError on non-setup namespace XML ... ERROR
Sucessfully objectify NS after setup ... ERROR
Objectify namespace-free XML document ... ok
Successfully objectify BASIC despite extra setup ... ok
随便提及,这个失败写到 STDERR 的最后一行是“FAILED (failures=1, errors=2)”,如果您需要的话这是一个很好的总结(相对于成功时最终的“OK”)。
从这里开始
本文向您介绍了 unittest 和 doctest 的一些典型用法,它们已经改进了我自己的软件中的测试。阅读 Python 文档,以深入了解可用于测试套件、测试用例和测试结果的全部范围的方法。它们全部都遵循例子中所描述的模式。
让自己遵从 Python 的标准测试模块规定的方法学是良好的软件实践。测试驱动(test-driven)的开发在很多软件周期中都很流行;不过,显然 Python 是一门适合于测试驱动模型的语言。而且,如果只是考虑软件包更可能按计划工作,一个软件包或库如果伴随有一组周全的测试,会比缺乏这些测试的软件包或库对用户更为有用。
更多精彩
赞助商链接