2012-02-12 104 views
2

我正在黃瓜中編寫一個功能,可以應用於一些可以編程確定的對象。具體而言,我正在爲雲部署編寫煙霧測試(儘管問題出在黃瓜上,而不是雲工具,因此堆棧溢出)。如何迭代黃瓜功能

Given a node matching "role:foo" 
When I connect to "automatic.eucalyptus.public_ipv4" on port "default.foo.port" 
Then I should see "Hello" 

給定的搜索節點的角色爲foo和automatic.eucalyptus ...並且端口來自找到的節點。這對一個節點來說工作得很好。

搜索可能會在不同的環境中重新調用多個節點。開發人員可能會返回一個,測試和集成一對夫婦,產品可能會有所不同。給定已經發現了所有這些。

循環遍歷每一步中的節點並不真正起作用。如果任何一個在When中失敗,整個事情都會失敗。我已經看過場景和cucumber-iterate,但都似乎假定所有場景都是預定義的,而不是以編程方式查找。

我是一個cuke noob,所以我可能錯過了一些東西。有什麼想法嗎?

編輯

我翻起方案 「解決」 問題。我試圖將集成到一個更大的集羣定義語言中,通過將信息作爲環境變量傳遞來定義重複調用功能。

+0

我認爲,對於這種情況,我們需要更多地瞭解您期望發生的情況,以及您如何定義整個場景是否失敗。此外,這看起來很專注,您在這裏測試的商業價值是什麼?就測試本身而言,已知的潛在環境清單是什麼?每個環境中最多隻能有一個節點?將Cucu運行在單一環境而不是一次嘗試所有這些方法是否合理? – 2012-02-15 21:48:15

回答

0

我提前道歉,我不能完全告訴你「怎麼做」,但我的一個朋友用一種非正統的技術解決了類似的問題。他運行情景,寫出稍後運行的情景。他寫信給他的寶石叫做cukewriter。他描述瞭如何在gem的github頁面上非常詳細地使用它。我希望這也能爲你工作。