如何为不同的区域设置

时间:2016-01-23 00:28:14

标签: ruby-on-rails cucumber capybara capybara-webkit

我正在为电子商务网站开发一个自动化套件,该网站包含不同国家/地区的网站页面。我已经针对网站的各种功能开发了所有100多个测试用例。现在,我的要求是测试所有不同国家(区域设置)的相同功能。

例如,

Locale  QA                  Production  

    US  XXXqa.com       XXX.com                 
    UK  uk-XXXqa.com    XXX.co.uk                   
    FR  fr-XXXqa.com    XXX.fr                  
    AU  au-XXXqa.com    XXX.com.au                  
    DE  de-XXXqa.com    XXX.de                  
    CA  ca-XXXqa.com    XXX.ca                  
    JP  jp-XXXqa.com    XXX.co.jp                   
    CN  cn-XXXqa.com    XXX.cn                  

对于登录测试,我正在编写此修改以包含所有国家/地区

     Scenario Outline: Existing user can sign in
            Given I am an existing user
            And I go to the <Country> homepage
            And I click the 'LOG IN' link
            And I am presented with the Log In modal
            When I enter my credentials and click the LOG IN button 
            Then I am logged in
    Examples:
            | country  |
            | US |
            | AU  |
            | FR |


Given /^I go to the (\w+) homepage$/ do |country|
  @country = country_url
end

它似乎可以用于测试,因为它能够导航到不同的国家和地区。测试功能。但是,如果我遵循这种方法,我将不得不修改超过1000行代码。是否还有其他方法可以浏览每个国家/地区。测试登录功能?

1 个答案:

答案 0 :(得分:1)

我没有尝试一次运行黄瓜来处理你所有的语言环境,而是为每个语言环境运行一次黄瓜。

您可以使用标记(例如

)限制运行时所运行的方案

@locale 场景:现有用户可以登录

您可能需要做的是配置host_name的聪明之处,以便在执行'translator' => array( 'locale' => 'de_DE', 'translation_file_patterns' => array( array( 'type' => 'gettext', 'base_dir' => __DIR__ . '/../language', 'pattern' => '%s.mo', ), ), ), 时评估到正确的路由。这可以使用一个环境变量和一些配置聪明的东西来完成。您要做的是为每次特定的运行更改visit login_path

一旦这个工作,我会使用CI服务器实际管理多次运行黄瓜。

希望这足以让你开始:)