`

使用cucumber测试过程中de-bug

阅读更多
最近,Rails工程中,做测试和集成测试的时候,Cucumber很热.然而,就像任何测试的工具使用的时候一样,测试用例可能出现以外的失败.

这个时候,就需要一些技巧来调试和发现这些没有覆盖到的用例,以及失败的原因.
使用ruby-debug之前,需要配置文件.

在env.rb文件中,添加:
require 'ruby-debug'


然后,你就可以放置breakpoint标识在任何你需要调试的代码处.例如,在application或者其它,需要step调试的地方.

Then /^the process should exit cleanly$/ do

  breakpoint

  assert exited_cleanly</span><span class="p">,</span> <span class="s2">&quot;Process did not exit cleanly: </span><span class="si">#{</span><span class="vi">stdout}"

end



提示: 如果,你把breakpoint标识放到了最后,那么你需要添加一个语句标识在breakpoint后面,否则,ruby-debug将会进入调用阻塞.如下:
Then /^the process should exit cleanly$/ do

  assert exited_cleanly</span><span class="p">,</span> <span class="s2">&quot;Process did not exit cleanly: </span><span class="si">#{</span><span class="vi">stdout}"

  breakpoint; 0

end


那么进行调试:
如果有一个步骤类似“Then I debug”,那么会相当方便,这个文件应该放到
features/step_definitions/debug_steps.rb:

Then /^I debug$/ do

  breakpoint

  0

end





Webrat插件

Webrat是一个默认的工具用来debugcucumber测试.它的功能包括,点击连接,输入和提交表单等.例如,如果,你试图点击一个不存在的链接.你就会得到一对的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-eclipse-plugin-0.0.23-SNAPSHOT.zip

    安装 Cucumber-Eclipse 插件是提升 Cucumber 在 Eclipse 中使用体验的关键步骤。通常,你可以通过 Eclipse 的内置更新管理器来添加新的插件。首先,打开“Help”菜单,然后选择“Install New Software”。在打开的...

    maven-cucumber-reporting-0.0.2-sources.jar

    maven-cucumber-reporting-0.0.2-sources.jar

    这是使用 Java 的 Cucumber-JVM 最简单的设置 .zip

    这是使用 Java 的 Cucumber-JVM 最简单的设置。Cucumber-Java 骨架这是使用 Java 为 Cucumber 设置的最简单的构建脚本。它没有像 Web 应用或浏览器测试那样花哨的东西。它所做的只是向您展示如何安装和运行 Cucumber...

    Cucumber相关jre包集合

    Cucumber相关jre包集合,有cobertura-2.1.1.jar,cucumber-core-1.2.5.jar,cucumber-html-0.2.7.jar,cucumber-java-1.2.5.jar,cucumber-junit-1.2.5.jar,cucumber-jvm-deps-1.0.6.jar等 自己也在使用无版本冲突...

    cucumber-forge-report-generator:Cucumber功能报告变得轻松

    Cucumber-forge-report-generator可用于创建干净HTML报告,而无需构建项目或运行测试。 当然,由于未执行测试,因此报告中不包含方案的通过/失败信息。 存在许多其他解决方案,用于基于Cucumber测试运行的输出来...

    cucumber-eclipse-plugin-0.0.23.zip

    Eclipse可离线安装的cucumber插件,另附有详细的安装教程:https://blog.csdn.net/qq_37904919/article/details/108384401

    testcafe-cucumber-steps:用TestCafe编写的Cucumber步骤(步骤定义),用于端到端(e2e)测试

    额外功能:在TestCafe中使用XPath选择器 贡献 谢谢 快速安装 如果您想尽快开始编写测试,则需要执行以下命令: npm init --yes # To create a basic package.json npm install testcafe-cucumber-steps @cucumber/...

    基于Java和Cucumber的自动化测试项目Serenity-Cucumber-Auto设计源码

    Serenity-Cucumber-Auto项目是一个融合了现代软件开发和测试理念的综合性自动化测试框架,它不仅展示了如何有效地利用Java编写自动化测试代码,而且还展示了如何结合Serenity和Cucumber工具来提供强大的测试报告和...

    cucumber-validacao-cpf-java

    CucumberJava骨架 CucumberJava Curso 这是使用Java为Cucumber设计的最简单的构建脚本设置。 没有像Webapp或浏览器测试这样的花哨的东西了。 这一切都是为了向您展示如何安装和运行...cd cucumber-java-skeleto

    Cucumber-JVM-Spring-MVC-Test-HTMLUnit-Demo:演示如何将Spring-MVC-Test-HTMLUnit与Cucumber-JVM结合使用

    在"Cucumber-JVM-Spring-MVC-Test-HTMLUnit-Demo"项目中,开发者首先会运行`mvn spring-boot:run`命令启动应用程序,然后使用`mvn clean compile test`来执行测试。这个过程展示了如何将这三个组件集成在一起: 1. ...

    Selenide-cucumber-allure-reports-java:使用Selenide,BDD(Cucumber),Browserstack和Allure报告进行自动化测试

    SelenideCucumber魅力报告...先决条件入门-安装Git -5分钟内完成Maven如何安装此项目git clone https://github.com/Pavelya/Selenide-cucumber-allure-reports-java.git 运行测试-命令行模式cd to project path Run w

    The Cucumber Book - Behaviour-Driven Development for Testers and Developers.pdf

    书中提到,通过阅读本书,读者不仅可以学习到如何有效使用Cucumber,还能接触到其他几个可用与Cucumber配合使用的Ruby工具。作者通过强调实用的见解,使得本书不仅为读者描述了如何使用Cucumber,还给出了如何最好地...

    parallel-cucumber-js:并行执行Cucumber场景,减少测试执行时间

    应该将parallel-cucumber-js作为开发依赖项添加到测试代码库中。 您可以使用以下方法执行此操作: $ npm install --save-dev parallel-cucumber 或者,您可以将其手动添加到package.json文件中: { " ...

    gradle-cucumber-reporting:一个gradle插件可以从json报告文件中为Cucumber生成漂亮HTML报告

    使用生成报告。用法该插件将在test任务结束时自动运行。 您也可以使用generateCucumberReports任务手动运行它。将插件添加到您的build.gradle ... buildId = ' 0 ' reports = files( ' path/to/cucumber-report.json

    cucumber-pdf-plugin-report

    3. **运行测试**:执行Cucumber测试套件时,插件会自动捕获测试过程中的信息,并在测试完成后生成PDF报告。 4. **查看报告**:生成的PDF报告可以提供详细的测试结果,包括场景(Scenario)、步骤(Steps)、执行...

    cucumber.jar

    这些步骤定义可以是JUnit测试的一部分,因此cucumber-junit-1.2.2.jar是Cucumber与JUnit集成的接口,使得测试可以在JUnit测试运行器中执行。 cucumber-core-1.2.2.jar是Cucumber的核心库,包含解析Gherkin特性和...

    rubygem-cucumber-tag-expressions

    理解并熟练使用 Rubygem-Cucumber-Tag-Expressions 可以显著提高 Cucumber 测试框架的效率和实用性。通过这种方式,你可以更精细地控制测试流程,从而优化测试策略,确保代码质量,并提升团队的开发效率。无论是手动...

    cucumber-groovy-1.1.1.zip

    这个压缩包“cucumber-groovy-1.1.1.zip”包含了Cucumber的一个版本,它是一个自动化测试工具,专为集成行为驱动开发(BDD)到Groovy编程语言中而设计。Cucumber允许开发者、测试人员和非技术人员通过自然语言编写可...

    cucumber-guice-1.1.4.zip

    使用Cucumber-Guice-1.1.4和websphere-maven-plugin,开发者可以构建一个完整的BDD测试流程,其中Cucumber定义业务逻辑,Guice管理依赖,而WebSphere Maven插件则确保EJB的远程调用在不同环境下的顺畅。这样的组合...

    cucumber-step-bug:我在 Cucumber 中发现的一个令人困惑的错误

    当跨场景重写重用步骤的参数时,展示了Cucumber步骤重用中的一些... pcluff@waluigi.local ➜ cuke-bug git:(master) ✗ bundle exec cucumber Feature: A As Foo I want Bar @passing Scenario: POC # features/b

Global site tag (gtag.js) - Google Analytics