使用Rake时设置ENV

时间:2018-04-19 21:02:13

标签: ruby rake watir

我正在使用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

1 个答案:

答案 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。