如果方案中有标签,是否可以跳过Cucumber中的全局挂钩?

在我的套件中,我有一个之后钩子,该钩子在完成方案后会从临时目录中删除文件。但是,有时候在某些情况下,我不想从temp目录中删除文件,而我希望通过为该情况提供一个名为@no_cleanup的标签来实现此目的。

现在,我当前的之后钩子如下所示:

After do
  FileUtils.rm_f(Dir.glob(File.join @local_dir,'*'))
end

我想做的事情是,“如果该方案上标有@no_cleanup,请跳过此钩子”。

这可能吗?

zhouzhou99 回答:如果方案中有标签,是否可以跳过Cucumber中的全局挂钩?

Cucumber documentation中所述(请不要忘记在页面顶部选择红宝石):

可以根据场景的标签有条件地选择要执行的挂钩。要仅在某些情况下运行特定的挂钩,可以将BeforeAfterAroundAfterStep挂钩与tag expression关联。

Before('@browser and not @headless') do
end

有关tags的更多文档。

所以,在您的情况下,我认为应该是:

After('not @no_cleanup') do
  FileUtils.rm_f(Dir.glob(File.join @local_dir,'*'))
end

我希望它会有所帮助。

本文链接:https://www.f2er.com/3135314.html

大家都在问