ruby-on-rails - 并行测试 Rails 应用程序的 JRuby 友好方法

标签 ruby-on-rails testing jruby parallel-testing

我正在寻找一个系统来在使用 JRuby 的 Ruby on Rails 应用程序(使用 rspec、cucumber)中并行执行大量测试。 Cucumber 实际上还不错,但完整的 rSpec 套件目前需要将近 20 分钟才能运行。

我能找到的系统(hydra、并行测试)看起来像是使用 fork ,这不是 JRuby 环境的理想解决方案。

最佳答案

对于这种应用,我们目前没有很好的答案。就在最近,我在研究 spork 的一个分支。这允许您保持进程运行并重新运行其中的规范或功能,前提是您使用的是支持代码重新加载的应用程序框架(如 Rails)。看看 jrubyhub有关我如何使用 Spork 的示例应用程序。

可能能够为您的应用程序生成一个 spork 实例,然后向它发送多个线程请求以运行不同的规范。但是你依赖 RSpec 内部实现线程安全,不幸的是我很确定它们不是。

也许您可以将我的代码作为起点并构建一个 spork 实例集群,然后拥有一个可以在它们之间分发您的测试套件的客户端。它不会节省内存,而且仍然需要很长时间才能启动,但如果您将它们全部启动一次,然后重复使用它们进行重复运行,您可能会提高效率。

欢迎随时访问 user@jruby.codehaus.org 或 freenode 上的#jruby 了解更多想法。

关于ruby-on-rails - 并行测试 Rails 应用程序的 JRuby 友好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2871174/

相关文章:

ruby-on-rails - Rails Webrick:配置监视哪些目录的更改

在 Windows XP 环境中测试我的程序

testing - test.before 钩子(Hook)覆盖 feature.beforeEach 钩子(Hook)。逻辑不好?

testing - ES6 构造函数可以更容易地用 Sinon stub 吗?

ruby-on-rails - rails console 或 irb 找出当前环境的 RAILS_VERSION

ruby-on-rails - 我如何告诉ActiveRecord不要记录任何控制字符

ruby - 需要 Nokogiri?没有要加载的文件

ruby - 使用 Mina 安装 JRuby gem

ruby - ruby 中的大数组操作非常慢

ruby-on-rails - 在 HAML 中,如何将类添加到表单上的提交输入(按钮)