黄瓜设置和拆除环境

时间:2014-08-27 01:28:07

标签: cucumber gherkin

我想在运行场景大纲示例之前设置一个环境,比如在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

提前致谢。

2 个答案:

答案 0 :(得分:1)

谢谢James,

Global hooks

如果您希望在任何方案运行之前发生一次 - 只需将该代码放在env.rb文件的顶层(或功能/支持目录中的任何其他文件中。使用内核#at_exit进行全局拆解例如:

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

http://media.pragprog.com/titles/dhwcr/global.pdf

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

答案 1 :(得分:0)

看起来推荐的方法是使用全局变量(Cucumber docs)。我想你会想要更像rspec&#39; context这样的东西,这样你就可以为一组场景创建一个环境,但是知识比我更多的人会告诉你这是否可以轻松完成(I&# 39;我不确定黄瓜是否有任何东西可用。)

相关问题