Cucumber 黄瓜设置与拆卸环境

Cucumber 黄瓜设置与拆卸环境,cucumber,gherkin,Cucumber,Gherkin,我想设置一个环境,比如说在运行场景大纲示例之前在Rackspace上创建服务器,然后销毁环境,比如说删除在Rackspace上创建的服务器,在测试用例完成后,它们是否成功并不重要 我已经尝试过使用Before和After,但是当它运行示例中的每个测试用例时,它似乎会创建并销毁服务器,我想要的是为场景大纲示例中的所有用例创建环境,而不仅仅是每个,然后在示例中的所有测试用例完成后删除它 这是我的代码: Feature: Radius Authentication #Creating servers

我想设置一个环境,比如说在运行场景大纲示例之前在Rackspace上创建服务器,然后销毁环境,比如说删除在Rackspace上创建的服务器,在测试用例完成后,它们是否成功并不重要

我已经尝试过使用Before和After,但是当它运行示例中的每个测试用例时,它似乎会创建并销毁服务器,我想要的是为场景大纲示例中的所有用例创建环境,而不仅仅是每个,然后在示例中的所有测试用例完成后删除它

这是我的代码:

Feature: Radius Authentication

#Creating servers for the test cases below in the env.rb

@wip
Scenario Outline:
  When the user authenticates <User> with different <MAC> <NAS-ID> via RADIUS
  Then the user <User> should be logged in

  Examples:
  |User|   MAC           |  NAS-ID    |
  | b1 |C0FFEE15F001     |testing-0   |    
  | b2 |C0:FF:EE:15:F0:02|testing-0   |
  | b3 |C0-FF-EE-15-F0-03|testing-0   |
  | b4 |C0FF.EE15.F004   |testing-0   |
  | b5 |C0:FF:EE:15:F0:05| -          |

  #Deleting servers after the test cases above are done  in the env.rb
功能:Radius身份验证
#在env.rb中为下面的测试用例创建服务器
@在制品
情景大纲:
当用户使用不同的via-RADIUS进行身份验证时
然后用户应该登录
示例:
|用户| MAC | NAS-ID|
|b1 | C0FFEE15F001 |测试-0 |
|b2 | C0:FF:EE:15:F0:02 |测试-0|
|b3 | C0-FF-EE-15-F0-03 |测试-0|
|b4 | C0FF.EE15.F004 |测试-0|
|b5 | C0:FF:EE:15:F0:05 ||
#在env.rb中完成上述测试用例后删除服务器

提前感谢。

看起来推荐的方法是使用全局变量()。我想你会想要一些更像rspec的
上下文的东西,这样你就可以为一组场景创建一个环境,但是有一个比我更了解情况的人会告诉你这是否容易做到(我不确定Cumber对此是否有任何建议)。

谢谢James

全局钩子

如果您希望在任何场景运行之前发生一次,只需将该代码放在env.rb文件(或功能/支持目录中的任何其他文件)的顶层。使用Kernel#at _exit进行全局拆卸。例如:

Cucumber启动时,我不必使用任何特殊的钩子来运行安装代码。只需将您的一次性启动代码放入env.rb中,Cucumber就会在第一次测试之前运行它

 at_exit do  ===> hook to tear it down when Ruby exits 
   my_heavy_object.undo_it
 end