【问题标题】:Can we have two evn.rb files in cucumber framework for Watir-Webdriver and REST API project Testing我们可以在黄瓜框架中有两个 evn.rb 文件用于 Watir-Webdriver 和 REST API 项目测试吗
【发布时间】:2015-06-29 04:00:59
【问题描述】:

目前我有两个单独的项目,分别用于 Rest API 和 Watir-webdriver with cucumber,所以我计划将它们移动到一个项目中,所以可以将其作为一个项目进行

我想将 My Rest API 框架 [ Cucumber + Httparty + Json ] 和 Watir-webdriver 框架 [ Cucumber + Watir-webdriver ] 保留在一个项目中, 有人可以帮助我吗?

【问题讨论】:

    标签: ruby rest cucumber watir-webdriver httparty


    【解决方案1】:

    可以在同一个项目中进行服务/浏览器测试,实际上,这很常见,因为很多东西可以在 ui 和服务测试层之间重用...我认为不可能有 2 个 env.rb 文件老实说,你没有理由想要......但我明白你为什么想到它......

    您可以通过多种方式在单个存储库中管理您的服务/用户界面框架,这完全取决于您遵循的路径...以下是您可以实现此目的的众多方法之一:

    在您的两个框架中,您的 env.rb 中可能有独特的设置...将这些独特的依赖项抽象到与 env.rb 相同级别的模块中,例如:

    service.rb
    browser.rb
    

    在每个模块中添加您的 ui/服务测试所需的步骤:

    module ServiceHelper/BrowserHelper      
      def service_setup/browser_setup
      end
    end
    

    现在在您的 env.rb 文件中,基于一些 ENV 变量配置,您可以调用浏览器或服务测试的设置:

    require 'service'
    require 'browser'
    
    include 'BrowserHelper'
    include 'ServiceHelper'
    
    if ENV['driver'] = 'service'
      service_setup
    elsif ENV['driver'] = 'browser'
      browser_setup
    else
      ...
    end
    

    最后,您可能会发现您的 UI 测试将重用您的服务测试套件中的很多东西,例如,可以通过服务来完成数据设置以协助您的 UI 测试......当您做到这一点时结论,您将不再需要有一个子句并加载一个或另一个......但是将设置服务/浏览器抽象到模块中,在 env.rb 之外仍然是一个好习惯,然后保持 env.rb 干净,并且帮助管理您针对不同目的的不同设置...

    【讨论】:

    • 非常感谢您给我的建议。解决方案非常好,我将实施它并让您知道,如果我在任何地方遇到困难请帮助我:-)
    • user3087106:嗨,我该如何处理服务/浏览器的挂钩。你能告诉我吗
    • 同样有几种方法可以做到这一点...一种简单的方法是标记您的服务/浏览器功能...然后如果挂钩不适合它们,则排除这些功能...例如:服务/浏览器功能有标签@service/@browser... 然后在您的服务挂钩中,为服务运行它并为浏览器排除它 After('@service', '~@browser') do ....
    • user3087106 :非常感谢您向我展示了路径,我已经按照您的想法完成了,但是当我尝试执行 service.rb 时,钩子会产生一些问题。所以我在 hook.rb 页面中创建了一个检查,例如 if EVN['driver'] == 'service' before do end at_exit do end elsif execute the service suite end 然后它按要求工作,无论如何再次感谢帮助我出来:-)
    • 很高兴我能提供帮助 =)
    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多