2010-05-20 56 views
2

我正在寻找一个系统来并行化使用JRuby工作的Ruby on Rails应用程序(使用rspec,cucumber)的一大套测试。黄瓜实际上并不算太坏,但完整的rSpec套件目前需要运行近20分钟。并行测试Rails应用程序的JRuby友好的方法

我能找到的系统(hydra,parallel-test)看起来像使用分叉,这不是JRuby环境的理想解决方案。

回答

2

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

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

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

随时可以通过[email protected]或freenode的#jruby停止以获得更多想法。