2015-06-22 83 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'