如果场景有标签,我可以跳过 Cucumber 中的全局挂钩吗?
Can I skip a global hook in Cucumber if a scenario has a tag?
在我的套件中,我有一个 After 挂钩,当它完成一个场景时,它会从临时目录中删除文件。但是,有时在某些情况下我不想从临时目录中删除文件,我希望通过为该场景提供名为 @no_cleanup
的标记来实现此目的。
现在,我当前的 After 挂钩如下所示:
After do
FileUtils.rm_f(Dir.glob(File.join @local_dir, '*'))
end
我想做的是 "skip this hook if the scenario has @no_cleanup tagged on it"。
这可能吗?
如 Cucumber documentation 中所述(不要忘记在页面顶部 select ruby):
钩子可以根据场景的标签有条件地select执行。要 运行 特定场景的特定挂钩,您可以将 Before
、After
、Around
或 AfterStep
挂钩与 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
希望对您有所帮助。
在我的套件中,我有一个 After 挂钩,当它完成一个场景时,它会从临时目录中删除文件。但是,有时在某些情况下我不想从临时目录中删除文件,我希望通过为该场景提供名为 @no_cleanup
的标记来实现此目的。
现在,我当前的 After 挂钩如下所示:
After do
FileUtils.rm_f(Dir.glob(File.join @local_dir, '*'))
end
我想做的是 "skip this hook if the scenario has @no_cleanup tagged on it"。
这可能吗?
如 Cucumber documentation 中所述(不要忘记在页面顶部 select ruby):
钩子可以根据场景的标签有条件地select执行。要 运行 特定场景的特定挂钩,您可以将 Before
、After
、Around
或 AfterStep
挂钩与 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
希望对您有所帮助。