为什么并行测试失败并显示“ Selenium :: WebDriver :: Error :: WebDriverError无效的会话ID”?

时间:2019-09-28 11:01:32

标签: ruby-on-rails selenium-webdriver circleci

我正在CircleCI上测试Rails应用。我在单独的容器中运行并行测试。

glBlendFunc(GLES20.GL_SRC_ALPHA,GLES20.GL_ONE_MINUS_SRC_ALPHA)

一个容器总是失败,并显示:

#.circleci/config.yml
...
jobs:
  build:
    parallelism: 2
    ...

如果我更改配置并且仅运行1个容器,则所有测试都通过。

我想我为并行测试配置了错误的内容。谁能帮助我了解Selenium为什么会期待一个不存在的会话,以及我应该在哪里调试它?

1 个答案:

答案 0 :(得分:1)

这是在docker env中运行的硒中的常见问题。解决该问题的一种方法是使用disable-dev-shm-usage选项并更改Capybara服务器端口。喜欢它:

# ...

Capybara.server_port = 9887 + ENV["CIRCLE_NODE_INDEX"].to_i # In order to create a new server port to each runner

Capybara.register_driver :headless_chrome do |app|
  # ...
  browser_options.args << '--disable-dev-shm-usage'
  # ...
end

来源:https://github.com/grosser/parallel_tests/issues/658#issuecomment-429395002