Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用xml或css或全局变量的数据驱动ios葫芦自动测试_Ios_Ruby On Rails_Automated Tests_Calabash Ios - Fatal编程技术网

使用xml或css或全局变量的数据驱动ios葫芦自动测试

使用xml或css或全局变量的数据驱动ios葫芦自动测试,ios,ruby-on-rails,automated-tests,calabash-ios,Ios,Ruby On Rails,Automated Tests,Calabash Ios,我正在使用葫芦ios进行自动测试。我希望能够运行cucumber一次,并让它为x个用户名运行x次,并在所有测试场景中运行 我想用这个: 假设我使用id[#{login name}]和pwd“PASSWORD”以[#{country name}]用户身份登录 并且有一个全局变量,可以存储国家/地区和用户名的值 我曾希望使用脚本来运行cucumber x次,并每次为全局变量设置值。这可能吗?如果是这样,有人能给我指出正确的方向吗 我尝试使用: @@Loginname=值 但我犯了这个错误: feat

我正在使用葫芦ios进行自动测试。我希望能够运行cucumber一次,并让它为x个用户名运行x次,并在所有测试场景中运行

我想用这个:

假设我使用id[#{login name}]和pwd“PASSWORD”以[#{country name}]用户身份登录 并且有一个全局变量,可以存储国家/地区和用户名的值

我曾希望使用脚本来运行cucumber x次,并每次为全局变量设置值。这可能吗?如果是这样,有人能给我指出正确的方向吗

我尝试使用: @@Loginname=值 但我犯了这个错误: features/step_definitions/common.rb:1:警告:从顶级访问类变量 未初始化的类变量@登录对象(NameError)


如果失败,是否可以使用葫芦访问存储在xml或css文件中的数据?

如果要运行同一个cumber,可以使用一些不同的变量多次运行,只需使用环境变量即可

Given I login as "ENV['COUNTRY_NAME']" user using id "ENV['LOGIN_NAME']" and pwd "PASSWORD"
然后当你运行测试的时候

LOGIN_NAME='login name' COUNTRY_NAME=country bundle exec cucumber 
当然,你可以把你想运行的所有行放到一个bat或sh脚本中

需要注意的一件事是使用环境变量或另一个变量来更改输出的路径,以免覆盖它们

然而,更优雅的解决方案是使用运行所有其他任务的rake任务来处理它。最有效的编写方法取决于需要多少次不同的运行

task :all => [:task1, :task2, :task3]
编辑:为了使场景更具可读性,应该在场景中使用通用占位符,并在步骤定义中隐藏环境变量

    Given I login as a user
可能具有如下步骤定义:

Given /^I login as a user$/ do
  ... set up your page object here ...     
  login_page.login(ENV['COUNTRY_NAME'], ENV['LOGIN_NAME'])
end

非常感谢。没有考虑使用env变量。这应该能奏效。我不知道什么是rake任务,这将是我在使用sh脚本和env变量运行测试之后查找的第一个任务。我的问题是,如何在步骤中使用env变量?我尝试按原样使用国家名称和[\ENV[\'COUNTRY\u NAME']]。希望你能在这方面帮助我。要在代码中引用它们,你可以这样称呼它们-ENV['COUNTRY_NAME']。不过,我已经更新了底部的答案,让它更漂亮。希望这是有道理的。