2012-02-12 101 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页面上非常详细地使用它。我希望这也能为你工作。