我正在使用Watir / Ruby进行测试自动化,使用以下方法设置我的ENV Base URL:
BASE_URL = {
:Production => "http://prod",
:QA => "http://qa",
}
使用以下方式设置我的ENV:
if ENV["BASE_URL"]
base_url = ENV["BASE_URL"]
else
base_url = BASE_URL[TARGET]
end
通常我在我的urls文件中本地更改我的ENV,使用TARGET =:Prod或:QA,取决于。
我试图在使用rake时改变它,是否可能?
My Rake在我的Rakefile中设置如下:
Cucumber::Rake::Task.new(:all, 'Runs all tests') do |t|
t.cucumber_opts = "features/Automation/*.feature
--format html --out=features/results/all-report-#{Time.now.strftime("%Y-%m-%d-%H-%M-%S")}.html
--format pretty --no-source
--format rerun --out features/results/all-rerun.txt
--tag @regression"
end
答案 0 :(得分:0)
环境变量必须是一个字符串,并且将在Rake文件中创建,如:
ENV["FOO"] = "BAR"
我喜欢将配置数据存储在yaml中,然后通过ENV将其拉出来。根据您存储的数据量,它是一种更容易管理的方式。
yaml = YAML.load_file('config.yml')
environment = ENV["TARGET"] || "QA"
ENV["BASE_URL"] = yaml[environment.to_sym]
如果您希望从类变量而不是环境变量中轻松访问某些内容,也可以使用fig_newton gem。