我是Cucumber和Ruby的新手。我有一个黄瓜功能,并从命令行运行。我在我的步骤定义.rb文件中给出了我的QA测试环境连接详细信息。当我在QA中运行它时,我没有任何问题总是指向QA。但是,如果我想在Dev或PT中运行,则必须在.rb步骤定义文件中更改连接URL。是否有任何选项只是在像下面的命令行指定测试区域运行特征文件...从命令行运行适用于不同测试环境的黄瓜功能
C:>黄瓜功能[开发或QA或IT]
我是Cucumber和Ruby的新手。我有一个黄瓜功能,并从命令行运行。我在我的步骤定义.rb文件中给出了我的QA测试环境连接详细信息。当我在QA中运行它时,我没有任何问题总是指向QA。但是,如果我想在Dev或PT中运行,则必须在.rb步骤定义文件中更改连接URL。是否有任何选项只是在像下面的命令行指定测试区域运行特征文件...从命令行运行适用于不同测试环境的黄瓜功能
C:>黄瓜功能[开发或QA或IT]
你可以把下面的代码features/support/env.rb
:
case ENV['MY_ENV']
when 'Dev' then # initialize Dev
when 'QA' then # initialize QA
else ...
end
并运行它想:
MY_ENV=Dev cucumber
我用HASHIE +阳明海运来管理这不仅需要给我不同的URL基地的能力,我的配置文件d对我打的环境,但也基于我打算在应用程序上运行测试...下面是一个例子:
首先,你想要一个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文件,然后包含“配置”模块...一旦你这样做,你设置为使用信息压力耳鼻喉科基于您在命令行设置ENV_CONFIG环境变量的YAML ...
您可以运行访问YAML信息的方式如下:
env_config.url
> "http://test.com" #if your ENV_CONFIG is "test"
当你触发黄瓜,通过归因运行环境变量(如果你不把代码默认测试)
cucumber ENV_CONFIG='dev'
嗨。感谢您的答复。我已经做了同样的建议和它的工作正常,我还有一个问题。如何在执行期间退出或终止黄瓜功能执行。例如,在env.rb文件中,我有我的'案例'从命令行选择环境。如果ENV ['']在命令行中没有合适的区域,那么在else语句中,我会提出“找不到区域”,我想终止执行流程。我试着退出(0),返回,提高()...但不工作..请你帮我怎么在运行时终止执行? – mmar
没有参数的'exit'必须工作。 – mudasobwa
我试过这个exit()。但我得到这个输出命令promt。这是正确的吗?。没有指定区域运行 无效选项:-t minitest选项: -h,--help显示此帮助。 -s,--seed SEED设置随机种子。也通过env。例如:SEED = n rake -v,--verbose Verbose。显示进度处理文件。 -n, - 名称PATTERN过滤器运行于/ pattern /或字符串。 已知的扩展名:pride -p,--pride Pride。展示您的测试骄傲! – mmar