WEB开发网
开发学院软件开发Python Python 中的测试框架 阅读

Python 中的测试框架

 2007-03-30 12:35:07 来源:WEB开发网   
核心提示: _main_ 中最有趣的分支是期待 -q 或 --quiet 标签的那个分支,如您将期望的,Python 中的测试框架(6),除非发生失败或错误,否则这个分支将是静默的(quiet,说它是我们目前为止所做的测试有些夸张):清单 5. test_all.py 组合了单元测试"Com

_main_ 中最有趣的分支是期待 -q 或 --quiet 标签的那个分支。如您将期望的,除非发生失败或错误,否则这个分支将是静默的(quiet,即尽量减少输出)。不仅如此,由于它是静默的,它只会为每个问题显示一行关于失败/错误位置的报告,而不是整个诊断回溯。除了对静默输出风格的直接利用以外,这个分支还举例说明了相对于测试套件的自定义测试以及对结果报告的控制。稍微有些长的 unittest.TextTestRunner() 的默认输出被定向到 StringIO out -- 如果您想查看它,欢迎您到 out.getvalue() 去查找。不过, result 对象让我们对全面成功进行测试,如果不是完全成功还可以让我们处理失败和错误。显然,由于它们是变量中的值,您可以轻松地将 result 对象的内容记录入日志,或者在 GUI 中显示,不管怎么样,不是仅仅打印到 STDOUT。

组合测试

可能 unittest 框架最好的特性是让您可以轻松地组合包含不同模块的测试。实际上,如果使用 Python 2.3+,您甚至可以将 doctest 测试转化为 unittest 套件。让我们将到目前为止所创建的测试组合到一个脚本 test_all.py 中(诚然,说它是我们目前为止所做的测试有些夸张):

清单 5. test_all.py 组合了单元测试

"Combine tests for gnosis.xml.objectify package (req 2.3+)"
import unittest, doctest, test_basic, test_expat
suite = doctest.DocTestSuite(test_basic)
suite.addTest(unittest.makeSuite(test_expat.Prerequisite))
suite.addTest(unittest.makeSuite(test_expat.ExpatTest))unittest.TextTestRunner(verbosity=2).run(suite)

由于 test_expat.py 只是包含测试类,所以它们可以容易地添加到本地的测试套件中。 doctest.DocTestSuite() 函数执行文档字符串测试的转换。让我们来看看 test_all.py 运行时会做什么:

上一页  1 2 3 4 5 6 7  下一页

Tags:

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