是否有针对at_start的Ruby Cucumber测试钩子?

时间:2016-07-25 22:55:06

标签: ruby cucumber

at_start是否有Ruby Cucumber测试挂钩?我尝试了 at_start ,但它没有用。

我在support/hooks.rb中有类似的内容,我希望在任何测试开始之前打印一条全局消息:

Before do
  print '.'
end

at_exit do
  puts ''
  puts 'All Cucumber tests finished.'
end

好像他们有一个at_exit钩子,他们应该有一个before-start钩子吗?

1 个答案:

答案 0 :(得分:2)

https://github.com/cucumber/cucumber/wiki/Hooks

有一些“全球挂钩”的文档

您无需将其包装在Beforeat_exit等任何特殊方法中。您只需在features/support目录中包含的任何文件中执行根级别的代码,例如env.rb。要复制并粘贴他们给出的示例:

# these following lines are executed at the root scope, 
# accomplishing the same thing that an "at_start" block might. 
my_heavy_object = HeavyObject.new
my_heavy_object.do_it

# other hooks can be defined in the same file
at_exit do
  my_heavy_object.undo_it
end

他们还举例说明了如何编写仅执行一次的Before块。如果定义了一些全局变量,基本上你有这个块退出。第一次运行块时,会定义全局变量,以防止它被多次执行。请参阅我链接的页面上的“仅运行一次前挂钩”部分。