【发布时间】:2011-12-07 16:21:47
【问题描述】:
我们正在考虑迁移到 jruby,作为其中的一部分,我们一直在研究测试方法和框架。我一直在本地开发机器上测试 rspec,发现使用 2 个非常简单的方法为单个类运行 2 个测试的总时间为 7-8 秒。简单来说,我的意思是一个 setter 和一个返回 true。
rspec 输出显示测试在大约 2 秒内运行,因此总时间的 5-6 秒用于加载和初始化 rspec。我正在使用
从命令行运行C:\rubycode\rspec_tutorial>rspec --profile user_spec.rb
..
Top 2 slowest examples:
User User should NOT be in any roles not assigned to it
0.023 seconds ./user_spec.rb:15
User User should be in any roles assigned to it
0.006 seconds ./user_spec.rb:10
Finished in 2 seconds
2 examples, 0 failures
我正在运行 jruby 1.6.5 和 rspec 2.7.1
我读过这篇文章,Faster RSpec with JRuby 但它已经超过 1.5 年了,答案与运行测试套件有关,而不是 在本地进行少量测试以帮助 TDD,这正是我们想要开发的方式。接下来我们将合并一个 CI 服务器。
我的问题是,这是预期的执行时间吗?有没有什么办法可以加快 JRUBY 在本地开发机上运行 rspec 测试的速度?
编辑:
最大的性能提升是从 64 位“服务器”JVM 切换到 32 位“客户端”模式。我发现运行一个简单测试的时间减少了大约 40%。我也启动并运行了 Nailgun,但性能各不相同。 banzaiman 下面提供的链接最有帮助
【问题讨论】:
-
启动 RSpec、启动正在使用的代码或运行测试是否占用了时间?
-
做
ruby my_class.rb需要多长时间? -
不确定您所说的“做”是什么意思,但已将分析输出添加到问题中。貌似 rspec 需要 2 秒,所以剩下的就是 JVM 时间了?
-
当你在目录
C:\rubycode\rspec_tutorial>中时,在命令行中运行命令ruby my_class.rb
标签: ruby windows testing rspec jruby