我是Cucumber和Ruby的新手。我有一个黄瓜功能,并从命令行运行它。我已在步骤定义.rb文件中提供了QA测试环境连接详细信息。当我在QA中运行时,我没有任何问题,它总是指向QA。但是如果我想在Dev或PT中运行,我必须更改.rb步骤定义文件中的连接URL。是否可以通过在命令行中指定测试区域来运行功能文件,如下所示...
C:>黄瓜的特点是[Dev或QA或IT]
答案 0 :(得分:0)
您可以将以下代码放入features/support/env.rb
:
case ENV['MY_ENV']
when 'Dev' then # initialize Dev
when 'QA' then # initialize QA
else ...
end
并按以下方式运行:
MY_ENV=Dev cucumber
答案 1 :(得分:0)
我使用hashie + yml来管理我的配置文件,这些文件不仅需要根据我点击的环境给我不同的网址,而且还要根据我打算运行测试的应用程序...下面是一个例子:
首先你需要一个yaml文件,你可以在其中添加你的配置信息,你可以称之为“config.yml”,例如:
---
test:
url: http://test.com
dev:
url: http://dev.com
然后是一个负责公开你的yaml文件的模块,你可以称之为“config.rb”,例如:
module Config
#this line creates a constant with the environment variable value
ENV_CONFIG = ENV['ENV_CONFIG'] || 'test'
#this method loads your yaml with hashie
def load_file(file_name)
Hashie::Mash.load(Dir.pwd + '/lib/config/' + file_name + '.yml')
end
#this is the method that you will use to read your yaml based on
#your ENV_CONFIG value
def env_config
config ||= load_file('config').send("#{ENV_CONFIG}")
end
end
然后在你的env.rb中需要config.rb文件,然后包含“Config”模块......一旦你这样做,你就可以根据你在命令中设置的ENV_CONFIG环境变量使用你的yaml中的信息了。线...
您可以通过以下方式运行访问yaml信息:
env_config.url
> "http://test.com" #if your ENV_CONFIG is "test"
当您触发黄瓜时,通过归因于环境变量来运行它(如果您不将代码默认为测试)
cucumber ENV_CONFIG='dev'