2015-06-22 56 views
0

我是Cucumber和Ruby的新手。我有一个黄瓜功能,并从命令行运行。我在我的步骤定义.rb文件中给出了我的QA测试环境连接详细信息。当我在QA中运行它时,我没有任何问题总是指向QA。但是,如果我想在Dev或PT中运行,则必须在.rb步骤定义文件中更改连接URL。是否有任何选项只是在像下面的命令行指定测试区域运行特征文件...从命令行运行适用于不同测试环境的黄瓜功能

C:>黄瓜功能[开发或QA或IT]

回答

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 
+0

嗨。感谢您的答复。我已经做了同样的建议和它的工作正常,我还有一个问题。如何在执行期间退出或终止黄瓜功能执行。例如,在env.rb文件中,我有我的'案例'从命令行选择环境。如果ENV ['']在命令行中没有合适的区域,那么在else语句中,我会提出“找不到区域”,我想终止执行流程。我试着退出(0),返回,提高()...但不工作..请你帮我怎么在运行时终止执行? – mmar

+0

没有参数的'exit'必须工作。 – mudasobwa

+0

我试过这个exit()。但我得到这个输出命令promt。这是正确的吗?。没有指定区域运行 无效选项:-t minitest选项: -h,--help显示此帮助。 -s,--seed SEED设置随机种子。也通过env。例如:SEED = n rake -v,--verbose Verbose。显示进度处理文件。 -n, - 名称PATTERN过滤器运行于/ pattern /或字符串。 已知的扩展名:pride -p,--pride Pride。展示您的测试骄傲! – mmar

0

我用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'