与capybara一起启动浏览器

时间:2013-06-10 18:30:19

标签: rspec capybara

我是Capybara的新手,希望有人可以帮我解决我遇到的问题。

作为测试的一部分,我有许多不同的测试规范文件。目前在每个spec文件的顶部,我创建了一个新的Capybara会话,其中包含以下内容: session = Capybara :: Session.new(:selenium)。

当只有一个spec文件要运行时,这个工作正常,但我发现当我尝试一起运行多个不同的spec文件测试(包含在一个文件夹中)时,它会为每个首先创建一个新的实例,我最终会有很多不同的浏览器窗口。有没有办法在一个地方而不是每个测试规范文件中都有这个?

我之前有过黄瓜和watir的经验,你可以做些什么是在你的env文件中创建你的浏览器实例。你也可以在这里拆解。在rspec / capybara中有相同的东西吗?我试过把' session = Capybara :: Session.new(:selenium)'在我的spec帮助文件中输入,但是当我尝试运行测试时,我得到了未定义的局部变量或方法`session'即使我有要求' spec_helper'在每个测试规范中。

任何帮助都会很棒!如果上述任何一项不明确,请告诉我,我会尽力澄清。

1 个答案:

答案 0 :(得分:3)

Scott Alister描述了如何在他的blog上为watir和rspec做这件事。你可以为capybara和rspec调整相同的内容。

尝试:

session = Capybara::Session.new(:selenium)

RSpec.configure do |config|
  config.before(:each) { @session = session }
end

请注意,您的测试会使用@session变量来引用会话。