- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 spork 加速 Rails 2.3.8 应用程序中的“rspecing”。当我在项目的根目录中运行 spork 时,我得到:
(...stuff...)
No server is running
Running specs locally:
Spork is ready and listening on 8989!
然后,如果我运行规范,消息
No server is running
Running specs locally
如果我在没有 Spork 的情况下运行它们,则不会出现,但是规范启动速度与没有 Spork 一样慢。同样在 Spork 的终端中没有进一步的输出出现。
我的问题是,spork 真的在运行吗?如果是这样,规范是否在那里运行?最后,如果两者的答案都是正确的,我怎样才能加快我的测试?
这里是涉及到的配置文件:
规范/规范.opts
--colour
--format progress
--loadby mtime
--reverse
--drb
规范/规范助手
require 'rubygems'
require 'bundler/setup'
require 'spork'
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment'))
require 'spec/autorun'
require 'spec/rails'
Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
Spec::Runner.configure do |config|
end
end
Spork.each_run do
end
并且,为了有一个完整的问题,这里是用“时间”测量的时间:
使用Spork:
real 0m39.524s
user 0m5.012s
sys 0m0.912s
没有 Spork:
real 0m39.576s
user 0m18.537s
sys 0m2.400s
运行时——我得到诊断
- Spork Diagnosis -
-- Summary --
config/boot.rb
config/initializers/inflections.rb
config/initializers/mime_types.rb
config/initializers/new_rails_defaults.rb
config/initializers/site_keys.rb
config/preinitializer.rb
spec/spec_helper.rb
然后,对于
--- config/initializers/inflections.rb ---
--- config/initializers/mime_types.rb ---
--- config/initializers/new_rails_defaults.rb ---
--- config/initializers/site_keys.rb ---
以下堆栈跟踪
/var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:147:in `load'
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:622:in `load_application_initializers'
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:621:in `each'
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:621:in `load_application_initializers'
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:176:in `process'
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send'
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run_without_spork'
/var/lib/gems/1.8/gems/spork-0.8.4/lib/spork/app_framework/rails.rb:18:in `run'
config/environment.rb:15
spec/spec_helper.rb:14:in `require'
spec/spec_helper.rb:14
/var/lib/gems/1.8/gems/spork-0.8.4/bin/../lib/spork.rb:23:in `prefork'
规范/spec_helper.rb:6
最佳答案
我遇到了同样的问题,这就是我能够弄清楚的。
在 lib/tasks/rspec.rake 的第 50 行附近,您会发现以下行。
spec_prereq = File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop
这导致 db:test:prepare 在您的规范之前运行,这反过来加载了环境,破坏了 spork 的全部目的。我注释掉了这一行并在其下方添加了以下内容。
spec_prereq = :noop
此更改应该会带来相当大的改进。在运行 db:migrate 之后,您必须手动运行 db:test:prepare。我有一个命令可以同时执行这两项操作。
我不知道您是否在使用 Bundler,但我发现通过升级到最新版本 (1.0.7) 可以进一步提高速度。 (Bundler 在 2.3.x 中加载 Rake 时设置加载路径)
由于 spork、rake 和 bundler 的开销,我仍然有大约 2.5 秒的延迟,我希望将来可以改进,也许当 spork 支持 rails 3 时。
关于ruby-on-rails - 如何知道 Spork 是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891849/
每当我运行 spork 时,我都会得到 $ spork Using RSpec Preloading Rails environment Loading Spork.prefork block...
我关注了 "How I Test" screencast at RailsCasts ,但是我遇到了 spork 的问题 $ guard Guard is now watching at '/User
当我用 spork 运行我的 rspec 测试时,每次我使用 capybara 的 save_and_open_page 时,spork 都会丢失测试套件......或者可能不再输出任何东西.....
我按照 Michael Hartl 的 Rails 教程使用 Spork 运行 Guard,我遇到了这个问题。以下是错误信息: 20:45:58 - INFO - Starting Spork for
如果我在我的 rails 项目中使用 spork 并且有一个像这样的 spec_helper.rb 文件 require 'spork' Spork.prefork do ... end Spor
我现有的 rspecs 和 Cucumber 功能都运行良好。 我正在安装 spork(实际上是 spork-rails)以提高重新运行速度。 我有 spork 的 rspec 运行良好。 我刚刚按照
我花了好几个小时试图配置 spork,以便它适用于 RSpec,适用于 Cucumber,重新加载模型,以便它不必一直重新启动并且不会抛出错误。 我花了很多时间研究其怪癖的解决方案,以至于我可能只是等
我有一个 spork gem 问题。每次运行 spork 命令时,都会出现这个长错误: evan@TheBeast-Computer:~/rails_projects/sample_app$ spor
我正在使用以下 gem 和 ruby-1.9.3-p194 : rails 3.2.3 rspec-rails 2.9.0 spork 1.0.0rc2 guard - pig 肉 0.6.1 此 G
我使用 spork 作为我的 DRB 和 autotest 作为我的观察者来加速我的 Rails 应用程序中的测试。目前,autotest 会在目录结构中的文件 发生更改时重新启动测试。 有没有办法在
我整天都在使用spork,在大多数情况下,这确实很棒。 但是,我经常遇到一些问题,需要重新启动Spork才能通过测试...现在,我想知道这是否比它值得的麻烦更多。我是ruby的新手,所以有时我无法预测
我正在使用 RSpec 进行 Rails 3 测试并尝试使用 Spork。 我遵循了几个教程,Spork 似乎没有错误地运行,但是我的测试在打开和关闭 Spork 的情况下仍然需要相同的时间来运行(4
我使用 spork 和 guard 来加速我的 Rails 3.2 应用程序中的测试套件。然而,在添加新迁移后,guard 中的测试表现得很奇怪:它们的行为就像它们不知道架构中的变化一样,即使我之前运
谁能解释一下如何将 Spork 与 Minitest 一起使用。我看到有一个 spork-minitest gem , 但不清楚如何使用它。 最佳答案 将其添加到 Gemfile 后,您可以使用 ht
因此,在 Rails 3.0.9 应用程序上,我在 1.9.2 上使用了 Spork/Guard/RSpec/FactoryGirl。 我想知道如何让 Spork/Guard 自动更新我的工厂和语言环
我正在按照 http://ruby.railstutorial.org/ 上的教程开发我的第一个 Rails 应用程序.我已经完全按照教程中的说明设置了我的开发环境(我正在使用带有 Lion 的 Ma
我正在使用以下技巧(来自 http://mikbe.tk/2011/02/10/blazingly-fast-tests/ )来确保在每次使用 Spork 运行 RSpec 时重新加载模型: Spor
使用Spork时如何加载Machinist的蓝图? gem : mongoid (2.0.0.rc.6) capybara (0.4.1.1) 牛排 (1.1.0) spork (0.9.0.rc2)
我正在尝试使用 spork 加速 Rails 2.3.8 应用程序中的“rspecing”。当我在项目的根目录中运行 spork 时,我得到: (...stuff...) No server is r
我在命令行上运行 spork --bootstrap 并收到错误 -bash: spork: command not found 我知道我已经安装了 spork,因为当我运行 bundle show
我是一名优秀的程序员,十分优秀!