`

调试Cucumber测试程序

阅读更多
Cucumber已经成为广泛接受的集成测试工具,Rails的开发的热门。那么,下面将专门讨论对于写cucumber测试的调试(Debug)

ruby-debug
breakpoint

首先,添加调试支持环境,到对应的features/support/env.rb.

require 'ruby-debug'

添加断点

Then /^the process should exit cleanly$/ do
  breakpoint
  assert @exited_cleanly, "Process did not exit cleanly: #{@stdout}"
end

这里特别说明,如果你把断点breakpoint加到了一个block的最后,会进入调用部分。例如,下面这样会好一些。

<notextile>
Then /^the process should exit cleanly$/ do
  assert @exited_cleanly, "Process did not exit cleanly: #{@stdout}"
  breakpoint; 0
end

</notextile>

开始debug
使用“Then I debug”放到 features/step_definitions/debug_steps.rb:将会很方便
Then /^I debug$/ do
  breakpoint
  0
end

这样写的好处在于可以方便的添加到你要测试的代码部分。如果,你把断点放到有问题的部分可能会比较不容易定位问题。

Webrat
Webrat是Rails默认的cucumber测试工具,将提供诸如点击链接,输入和提交表单的操作。如果,你的模拟点击的元素不存在,将会产生很多的html反馈。

save_and_open_page
Webrat提供save_and_open_page来捕获当前的HTML页面并保存。如下使用:
When /^I follow "(.*)"$/ do |link|
  save_and_open_page
  click_link(link)
end

可是,这就有一个问题,如果,在测试的时候有太多的页面被保存,那么读取就很不方便

When /^I follow "(.*)"$/ do |link|
  begin
    click_link(link)
  rescue
    save_and_open_page
    raise
  end  
end


结论
Cucumber 可以结合 ruby-debug  save_and_open_page进行调试

分享到:
评论
1 楼 wxmfly 2009-06-17  
现在国内对Cucumber的关注不多,希望搂主多写几篇文章

相关推荐

    cucumber-debugging:Cucumber 测试的调试

    然而,当测试失败时,理解并调试Cucumber测试可能会变得棘手。以下是一些关于如何有效地调试Cucumber测试的详细知识。 1. **理解Cucumber的工作原理**: Cucumber 使用Gherkin语法编写测试场景和步骤定义。场景是...

    Cucumber-rust:Rust的Cucumber测试框架。 完全本机,没有外部测试运行程序或依赖项

    Cucumber-rust是一个针对Rust编程语言的Cucumber测试框架,它专为行为驱动开发(BDD)设计,同时也适用于测试驱动开发(TDD)和验收测试驱动开发(ATDD)。Cucumber-rust的独特之处在于它完全原生,不依赖任何外部...

    Lab2:实验2Cucumber测试

    在这个名为"Lab2: 实验2Cucumber测试"的实验中,我们将深入探讨如何使用Cucumber进行测试,以及它如何与Java集成。 首先,让我们理解Cucumber的基本概念。Cucumber基于Ruby构建,但有Java、JavaScript等多语言支持...

    使用RSpec 测试Rails 程序.pdf

    - **要不要使用Cucumber**:Cucumber是一个流行的功能测试工具,可以与RSpec结合使用,提供更自然的语言描述测试案例。 - **简单的功能测试**:从最简单的功能测试入手,逐步扩展到更复杂的场景。 - **涉及...

    WEB 测试程序

    【标题】:“WEB 测试程序” 在软件开发领域,Web测试是验证Web应用程序功能、性能、兼容性以及用户体验的重要环节。对于C#开发者来说,掌握有效的Web测试技术是确保产品质量的关键。本资料集主要关注C#环境下...

    pickle:适用于Android的Cucumber的代码生成实现

    与Cucumber 相比,它的主要优点是,您无需在Cucumber测试中使用其他工具运行程序,并且可以在生成Cucumber后调试和检查测试,从而更容易调试错误。安装将此添加到您的应用程序build.gradle依赖项。 ext . ...

    jest-cucumber:在Jest中执行小Cucumber方案

    如果您使用的是VS Code,那么还有一个很棒的,可以让您在编写测试时获得实时反馈并轻松地分别调试失败的测试。 是一种流行的工具,用于进行 并创建业务可读的可执行规范。 该库旨在实现两全其美,甚至在同一测试运行...

    Cucumber项目

    例如,可以编写Cucumber测试用例来检查按钮点击后是否跳转到正确的页面,表单提交后是否显示适当的反馈信息等。 在Cucumber项目中,通常会有以下组成部分: 1. **特性文件(Feature Files)**:包含用Gherkin语法...

    StudyCypress:柏树+Cucumber+ BDD

    5. 运行和调试Cypress+Cucumber测试。 在实际操作中,你可以通过阅读官方文档,观看教程视频,参与在线课程,或者直接实践项目中的`StudyCypress-main`压缩包中的代码示例来加深理解。通过这些努力,你将能够有效地...

    计算器端到端测试js:使用Cypress,Testcontainer,Cucumber进行计算器端到端测试

    在JavaScript开发领域,端到端测试是确保应用程序各个部分协同工作的重要步骤。在这个场景中,我们使用了Cypress、Testcontainers和Cucumber这三个强大的工具来实现一个计算器的端到端测试。下面将详细介绍这些工具...

    [零成本实现Web自动化测试-基于Selenium和Bromine].温素剑.扫描版

    12. **测试报告和日志**:生成详细的测试报告,以便于理解测试结果和定位问题,以及设置日志记录,便于调试和追踪测试过程。 书中通过实例讲解这些概念和技术,旨在帮助读者掌握如何在实际项目中运用Selenium和...

    基于Ruby的Web自动化测试框架平台应用.rar

    在Web测试中,Ruby提供了多种强大的框架,如Selenium WebDriver、Cucumber和RSpec,这些工具可以帮助开发者和测试人员编写可重复执行的自动化测试脚本,以确保Web应用程序的质量和稳定性。 Selenium WebDriver是...

    Cucumber_nozama_demo

    在命令行中,可以使用`mvn test`命令执行Cucumber测试,IDE则通常有专门的插件支持直接运行.feature文件。 5. **测试报告**:Cucumber会自动生成详细的测试报告,展示每个测试步骤的结果,这对于理解和调试测试过程...

    网络自动化:使用Cucumber,WebdriverIO和Docker Selenium进行BDD测试

    产品特点设置简单,无需本地预装的Selenium Grid和浏览器驱动程序在零配置下使用Chrome和Firefox进行测试与集成使用和150多个预定义步骤进行BDD测试使用实施自定义步骤支持调试测试可以通过VNC在浏览器中直观地查看...

    Android 功能测试框架 calabash-android.zip

    Android 功能测试框架 Calabash-android 提供了一种高效、可读性强的方式来自动化测试 Android 应用程序的功能,极大地提高了测试效率。Calabash-android 基于 Cucumber,一个广泛使用的业务驱动开发(BDD)框架,...

    开源的web测试工具研究

    在IT行业中,Web测试是确保网站和应用程序质量的关键环节。开源Web测试工具因其成本效益、灵活性和社区支持而备受青睐。本文将深入探讨几个流行的开源Web测试工具,以帮助开发者和测试人员提升测试效率和软件质量。 ...

    移动APP自动化测试框架对比

    它支持Swift和Objective-C两种语言,可以无缝集成到Xcode中,便于开发者进行测试脚本的编写与调试。此外,XCUITest还支持模拟手势操作,使得测试更加接近真实用户的使用场景。 #### 2. Appium 虽然Appium最初是为了...

    J2EE企业应用测试源代码.

    6. Postman:API测试工具,方便测试和调试RESTful web服务。 7. Arquillian:一个针对Java EE容器的集成测试平台,可以在真实的服务器环境中进行测试,确保环境因素的影响得到考虑。 在测试过程中,这些工具可以...

    arquillian-drone-spi-1.3.0.Final.zip

    Arquillian Drone是Java EE应用程序端到端测试的强大工具,而Cucumber Sandwich则提供了一个本地化的、友好的测试结果展示方式,两者结合可以提升开发和测试团队的工作效率。对于参与或开发类似项目的人来说,理解和...

    软件构件测试技术的一般方法与模型

    - **Selenium**:用于Web应用程序的自动化测试工具。 #### 构件模型 不同的构件模型有着不同的特点,比如CORBA、EJB和COM/DCOM等。这些模型在接口标准、平台依赖性、语言依赖性等方面存在差异。了解这些差异有助于...

Global site tag (gtag.js) - Google Analytics