gpt4 book ai didi

ruby - 如何在 Ruby 中为多个环境创建配置文件?

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:06 27 4
gpt4 key购买 nike

我不想让你感到困惑,所以我想做的是:

我有三个环境:

www.env1.com
www.env2.com
www.env3.com

我想根据运行脚本的环境创建一些东西来定义设置阶段,即:

当前设置:

def setup
@verification_errors = []
@selenium = Selenium::Client::Driver.new(
:host => "localhost",
:port => 4444,
:browser => "*firefox C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
:url => "www.env1.com",
:timeout_in_second => 60
)

@selenium.start_new_browser_session
end

我想要的:

def setup
@verification_errors = []
@selenium = Selenium::Client::Driver.new(
:host => "localhost",
:port => 4444,
:browser => "*firefox C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
**:url => This parameter configurable from a file or other source.**
:timeout_in_second => 60
)

@selenium.start_new_browser_session
end

如果可能的话,我可以切换环境而不必重新编写所有测试用例。

希望你能帮助我,我真的需要这样做。

最佳答案

YAML是一种用于处理配置信息的出色数据序列化语言。它comes with Ruby所以你只需要做:

require 'yaml'

加载它,然后是这样的:

configuration = YAML::load_file('path/to/yamldata.yaml')

您的所有配置数据都将在 configuration 变量中可用。

通常,我通过编写一些 Ruby 代码为我的 YAML 文件创建 stub ,定义包含它的配置哈希,然后告诉 YAML 为我生成文件。 See the docs用于 load_filedump 的方法。

对于您正在做的事情,我会创建一个散列,例如:

configuration = {
'env1' => "www.env1.com",
'env2' => "www.env2.com",
'env3' => "www.env3.com",
}

使用 YAML::dump(configuration) 返回:

--- 
env1: www.env1.com
env2: www.env2.com
env3: www.env3.com

您希望将其写入您的 .yaml 文件,然后稍后在运行时加载并像这样访问它:

@selenium = Selenium::Client::Driver.new( 
:host => "localhost",
:port => 4444,
:browser => "*firefox C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
:timeout_in_second => 60
:url => configuration['env1'],
)

您可以将 'env1' 替换为其他 key 以使用 env2 或 env3。

Rails 使用 YAML 使一个文件处理应用程序的开发、测试和生产信息。在工作中我用它来做类似的事情,其中​​一个文件包含我们应用程序的开发和生产环境信息,以及我们需要维护的一些哈希的定义,但不想为此修改代码。

关于ruby - 如何在 Ruby 中为多个环境创建配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com