我有一些测试设置代码,我需要在运行带有@javascript
标记的JavaScript的任何Capybara测试之前运行。我不想让代码在剩下的时间里运行,因为这个测试设置在系统资源和认知负载方面是昂贵的。
我已经广泛地搜索了文档,无法找到任何在基于标记的测试之前运行任意ruby的示例。有人能帮我吗?
编辑:在考虑了这一点之后,我只需要在任何测试运行之前运行一次代码,所以这可能是一个比我第一次描述的更简单的问题。
既然你问的是@javascript标签,我假设你在谈论黄瓜驱动的测试,如果你不是,那么请澄清。
要在测试之前运行代码,您可以使用Before
Before('@javascript') do
# any code here will get run before each test tagged with @javascript
end
为了使它只运行一次,你需要使用一个全局变量
Before('@javascript') do
$already_run ||= false
return $already_run if $already_run
# code here will get run once before the first test tagged @javascript
$already_run = true
end