我正在用黄瓜写一个功能,可以应用于许多可以通过编程确定的对象。具体来说,我正在为云部署编写一个冒烟测试(虽然问题在于黄瓜,而不是云工具,因此堆栈溢出)。
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 ...并且端口来自找到的节点。这对于一个节点来说效果很好。
搜索可以在不同环境中重新调用多个节点。 Dev可能会返回一个,测试和集成一对,并且prod可能会有所不同。给定的已经找到了所有这些。
在每个步骤中循环节点并不真正起作用。如果任何一个在When中失败,整个事情就会失败。我已经查看了场景和黄瓜迭代,但两者似乎都假设所有场景都是预定义的而不是以编程方式查找。
我是个小伙子,所以我可能会错过一些东西。有什么想法吗?
修改
我通过翻转场景“解决”问题。我正在尝试集成到更大的集群定义语言中,以通过将信息作为环境变量传递来定义重复调用该功能。
答案 0 :(得分:0)
我事先道歉,我无法告诉你究竟“如何”这样做,但是我的一个朋友使用一种非正统的技术解决了类似的问题。他运行的场景写出了稍后要运行的场景。他写这篇文章的宝石称为cukewriter。他描述了如何在gem的github页面上以非常好的细节使用它。我希望这对你也有用。