运行一些testing后,我确信我的设置(windows,rubymine和最新的ruby版本)必须有错误。 我现在的时代是:
Finished tests in 14.289817s,0.0700 tests/s,0.3499 assertions/s. 1 tests,5 assertions,0 failures,0 errors,0 skips Process finished with exit code 0
用5非常简单的testing(只是检查是否validation空字段的作品)。 这5个unit testing的总时间是160秒,超过2分钟。
我能做些什么来提高这个速度?
这里是testing:
ruby,Windows,产卵 – 如何拯救资源暂时不可用EAGAIN?
Rails:Raketesting:function不能访问数据库(winXP上的sqlite3)
错误在Windows上安装'rhc'Rubygems
独angular兽超时处理
两种不同操作系统之间开发的最佳方式
require 'test_helper' class ItemTest < ActiveSupport::TestCase test 'item attributes must not be empty' do item = Item.new assert item.invalid? assert item.errors[:name].any? assert item.errors[:description].any? assert item.errors[:image_url].any? assert item.errors[:rating].any? end end
Ruby on Rails路线:多个命名空间和多个域:最佳实践?
从目录树中recursion复制文件types
导轨资产:预编译系统中未检测到Yarn可执行文件
在与apache和乘客部署rails应用程序后,显示页面不存在
你的问题是Windows。 我们在Windows上使用JRuby,实际上运行速度比Windows上的RubyInstaller(mingw)ruby快,但是在运行测试套件或启动rails服务器时,我们看到的结果非常慢。 由于Rails环境的加载,大约1分钟进行单个测试。 你有几个选择:
切换到linux / osx
使用spork保持预先加载测试的情侣轨道环境。 请注意,这并不完美,但会大大缩短您的时间。 有了这个选项,你可能会想要使用minitest或rspec,我有麻烦让spork工作在与testunit的Windows上。 用spork,你应该可以让你的单一测试运行时间下降到10秒左右。
写尽可能多的测试在Rails之外运行,换句话说不需要Rails堆栈。 这将是非常快的,你应该能够在几秒钟内运行一个测试,但是正如你所猜测的,很难在rails之外测试很多东西(控制器,视图)。 尽管对于已经不需要任何东西的模块已经分解出来的函数可以很好地工作。
祝你好运!
你的宝石堆栈的其余部分是什么? 有时,第三方的宝石是由轨道初始化,并会尝试打电话到家(New Relic,Airbrake),这可能会夸大你的测试时间(虽然可能不是这么多)。 如果你的测试套件不是严格要求的东西,你应该尝试把它放到合适的env组中,或者通过bundler设置require :false 。
组:生产做
宝石'newrelic_rpm'
结束
启动时间似乎在杀死你,所以你和我可能在同一条船上。 在Jodell和黑暗城堡之间,已经有很多这方面的内容了,但是这里列出了几乎所有的东西都是有帮助的。
获得补丁1.9.3与2.0文件系统改进backported。 第一个获得了两倍的更好的数字,但我使用第二个,因为我觉得第一个是不稳定的
https://groups.google.com/forum/?fromgroups=#!topic/thecodeshop/WVA4N2lJoM4
https://raw.github.com/gist/3242245/5cdb932c0a544cfbb51fdee5759942d4d2c263f5/1-complete.diff
设置您的GC选项
http://snaprails.tumblr.com/post/241746095/rubys-gc-configuration (我正在使用最后一个)
运行Spork,并set SPEC_OPTS=--drb
关闭病毒扫描程序(实际上不要这样做,无论如何,它只有10%的价值)
仔细检查你的宝石,延迟加载宝石与要求:假
6实际上并没有给我买太多东西。 我们错误的最大的问题是无条件加载Thin(其中包含21兆字节的Eventmachine),但是堆栈中的下一个3被RSpec实际使用。 我没有看过网络流量,但Jodell可能在那里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。