小编set*_*all的帖子

使用Poltergeist,Phantom JS实例在每次rspec运行期间都不会退出

在由rspec执行的每个poltergeist测试中,如果我使用以下命令创建新会话:

Capybara.session_name="some_session_name"

一个phantomjs实例作为子进程启动,并且在测试结束之前永远不会退出,从而导致构建服务器上出现OOM.

我相信这是由于未能调用driver.quit,如自使者Poltergeist所述:

如果您手动运行几个capybara会话,请确保在不再需要会话时调用session.driver.quit.忘记这一点会导致内存泄漏,并且您的系统资源可能会比您预期的更早耗尽.

然而,我呼吁page.driver.quitafter我的测试块.

下面是我的后块代码. $adhoc_sessions我是每次设置时填充的全局变量Capybara.session_name,其值与设置的值匹配Capybara.session_name.

config.after(:each) do
  if example.metadata[:js]

    $adhoc_sessions.each do |session_name|
      Capybara.using_session( session_name ) do
      page.driver.quit
      end
    end
    $adhoc_sessions.clear
  end
Run Code Online (Sandbox Code Playgroud)

关于我能在这里做得更好的建议吗?我没有打电话给一些清理命令吗?

poltergeist

5
推荐指数
1
解决办法
1938
查看次数

标签 统计

poltergeist ×1