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
钩子吗?
答案 0 :(得分:2)
https://github.com/cucumber/cucumber/wiki/Hooks
有一些“全球挂钩”的文档您无需将其包装在Before
或at_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
块。如果定义了一些全局变量,基本上你有这个块退出。第一次运行块时,会定义全局变量,以防止它被多次执行。请参阅我链接的页面上的“仅运行一次前挂钩”部分。