parallel_tests 黄瓜功能仅在 CI 中失败

parallel_tests cucumber feature fails only in CI

我正在使用具有更多测试覆盖率的遗留 ROR 应用程序,因此将花费将近 1:30 小时来执行我们的信号量 CI 中的所有 rspec_cucumber。所以我们实现了 [Parallel_test][1]

[1]: https://github.com/grosser/parallel_tests。 Gem 很多时候某些功能规范或场景仅在 CI 环境中失败。当我们在本地和信号量 SSH 环境中重新 运行 相同的测试用例时,相同的规范通过了。

CI 环境日志中最常见的错误是 Capybara::ElementNotFound: 很难确定问题的根本原因。有什么线索吗?

在 CI 上尝试 运行ning 而不进行并行测试 gem,然后让 CI 平台进行并行化。

也许这会有所帮助 https://semaphoreci.com/docs/running-cucumber-scenarios-in-threads.html

我很确定 semaphore 支持 rspec 的并行测试。

也尝试 运行在本地对整个套件进行并行测试,看看是否遇到相同的问题。

最后在命令行上查看 cucumber --help。您可以使用多种选项来执行以下操作

  • 向 运行
  • 添加更多调试信息
  • 确定最慢的场景,(也许您可以标记这些场景并 运行 减少它们的频率)。

我 运行 遇到了与 Capybaraparallel_tests 类似的问题,我发现您 运行 的同时测试越多同时,您在 Circle CI 中开始遇到更多“奇怪”的问题。也就是说,即使 Circle CI 中的芯片(至少在我们的容器中)有 18 个内核。我使用 -n 4 标志将同时测试的数量限制为仅 4 个。

因此,在我的 Ci 配置中,我使用:bundle exec parallel_rspec ~/repo/spec -n 4