我是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