WEB开发网
开发学院软件开发Python Python 测试框架: 选择和运行测试 阅读

Python 测试框架: 选择和运行测试

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示: 对于衍生测试,py.test 更方便,Python 测试框架: 选择和运行测试(5),因此您能够更加轻松的分辨出正在运行的测试,并在一个或多个测试失败时理解测试报告,可能还有 teardown 代码,这样,在每个元组中提供的第一项可以是一个名称,它会作为测试名称的组成部分输出:#Alternat

对于衍生测试,py.test 更方便。因此您能够更加轻松的分辨出正在运行的测试,并在一个或多个测试失败时理解测试报告,在每个元组中提供的第一项可以是一个名称,它会作为测试名称的组成部分输出:

# Alternate yield statement, for py.test 
... 
yield 'Page %s browser %s' % (b,p), check, b, p

当前,许多项目使用手工测试或者只能使用 unittest 支持的功能,这些技术非常笨拙。衍生测试提供了好得多的参数化测试解决方案。

setup 和 teardown

在设计和编写测试套件时,一个大问题是如何处理共同的 setup 和 teardown 代码。许多真实的测试并不像本文给出的示例函数这么简单;它们必须执行一些复杂的操作,比如在 Firefox 中打开网页并单击 “Continue” 按钮,然后检查结果。在开始实际测试(比如打开页面并单击按钮)之前,测试必须先完成一些步骤。

现在,考虑如果一百个功能性测试都要这样执行测试,会怎么样。它们都需要通过调用共同的 setup 例程运行 Firefox,然后才能执行自己的测试。与此相应,为了取消 setup 所做的操作,可能还有 teardown 代码。这样,在测试套件中就会增加两百个额外的函数调用。每个测试函数会像下面这样:

# How test functions look if they each do setup and teardown 
 
def test_index_click_continue(): 
  do_big_setup()     # <- the same in every test 
  t = TestBrowser(browser) 
  t.load_page('index.html') 
  t.click('#continue') 
  t.check_status(200) 
  do_big_teardown()    # <- the same in every test

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

Tags:Python 框架

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