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
。您可以使用多种选项来执行以下操作
- 向 运行
添加更多调试信息
- 确定最慢的场景,(也许您可以标记这些场景并 运行 减少它们的频率)。
我 运行 遇到了与 Capybara 和 parallel_tests
类似的问题,我发现您 运行 的同时测试越多同时,您在 Circle CI 中开始遇到更多“奇怪”的问题。也就是说,即使 Circle CI 中的芯片(至少在我们的容器中)有 18 个内核。我使用 -n 4
标志将同时测试的数量限制为仅 4 个。
因此,在我的 Ci 配置中,我使用:bundle exec parallel_rspec ~/repo/spec -n 4
我正在使用具有更多测试覆盖率的遗留 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
。您可以使用多种选项来执行以下操作
- 向 运行 添加更多调试信息
- 确定最慢的场景,(也许您可以标记这些场景并 运行 减少它们的频率)。
我 运行 遇到了与 Capybara 和 parallel_tests
类似的问题,我发现您 运行 的同时测试越多同时,您在 Circle CI 中开始遇到更多“奇怪”的问题。也就是说,即使 Circle CI 中的芯片(至少在我们的容器中)有 18 个内核。我使用 -n 4
标志将同时测试的数量限制为仅 4 个。
因此,在我的 Ci 配置中,我使用:bundle exec parallel_rspec ~/repo/spec -n 4