Ruby on rails 如何将参数传递给config.yml对象
我有config.yml,其中包含Ruby on rails 如何将参数传递给config.yml对象,ruby-on-rails,ruby,cucumber,Ruby On Rails,Ruby,Cucumber,我有config.yml,其中包含 dev: url: http://dev.com host: dev.com port: 1234 stage: url: http:// abc.stage.xyz.com host: stage.com port: 4567 prod: url: http://nnn.prod.com host: prod.com port: 5698 在功能文件中,我将场景写为 scenario1:
dev:
url: http://dev.com
host: dev.com
port: 1234
stage:
url: http:// abc.stage.xyz.com
host: stage.com
port: 4567
prod:
url: http://nnn.prod.com
host: prod.com
port: 5698
在功能文件中,我将场景写为
scenario1: navigate to dev url
Given I navigate to the dev url
scenario2: navigate to stage_url
Given I navigate to the stage url
scenario3: navigate to prod_url
Given I navigate to the prod url
在步骤定义中
Then /^I navigate to the (.*) url$/ do |type|
env_config = $config.<type>.to_hash
#example
#env_config = $config.dev.to_hash
#env_config = $config.stage.to_hash
@browser.go_to(env_config['url'])
end
问题:-如何以我在示例中提到的相同格式将该类型映射到$config。如果$config['dev_url']返回,它的工作方式与env_config=$config[type]不同http://dev.com,您可以使用@browser.go_到$config[url_type],实际上我使用的是as FigNewton.yml_目录='config'FigNewton.load'config.yml'$config=FigNewton。同样在config.yml中,我们有类似dev:dev_url:dev_host:dev_port:,stage:stage_url:stage_port:等的结构。因此,如果我们在步骤定义中将type传递为dev,我们会像dev_config=$config..to_散列一样进行操作,以获取与dev相关的所有内容。dev_config['dev_host']、dev_config['dev_port']等。它不像$config[type]那样可以提取与dev相关的值。那么我们有什么方法可以传递该类型吗?您可以编辑您的问题并添加这些详细信息吗?我已经这样做了。您现在可以查看一下。如果需要更多信息,请告诉我。
FigNewton.yml_directory = 'config'
FigNewton.load('config.yml')
$config = FigNewton