标签: spork

使用Spork时如何加载Machinist的蓝图?

使用Spork时如何加载Machinist的蓝图?

宝石:

  • mongoid(2.0.0.rc.6)
  • 水豚(0.4.1.1)
  • 牛排(1.1.0)
  • spork(0.9.0.rc2)
  • rspec(2.4.0)
  • 机械师(2.0.0.beta2)

我在每次验收测试中都会收到此错误:

Machinist::NoBlueprintError:
   No master blueprint defined for class School
Run Code Online (Sandbox Code Playgroud)

所有测试都失败了,因为它没有找到任何蓝图.我在V2上的一些错误(我仍然得到几个没有主蓝图..),但我也得到另一个错误:

Professor Create a new professor
 Failure/Error: click_link("Profesores")
 RangeError:
   0x000000821461e4 is recycled object
Run Code Online (Sandbox Code Playgroud)

我在测试环境中得到了config.cache_classes = false.

两个spec_helper版本:

https://gist.github.com/801814

testing ruby-on-rails spork

5
推荐指数
1
解决办法
2316
查看次数

Zentest - 如何在红色时停止自动测试

我正在尝试配置自动测试,以便当我运行我的测试套件并且我有一个失败的测试时,自动测试停止测试并等待我再次测试之前进行更改.使用我当前的配置,当遇到失败的测试时,自动测试会不断地进行测试,这使得处理时有点麻烦(每次我遇到测试失败时都必须键入终端并停止自动测试服务器).

我正在使用RSpec,Zentest和Spork开发rails应用程序.

相关宝石版本:

autotest (4.4.6)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
spork (0.9.0.rc8)
ZenTest (4.5.0)
Run Code Online (Sandbox Code Playgroud)

我的.autotest文件:

module Autotest::Notify
  def self.notify title, msg, img, pri='low', time=3000
    `notify-send -i #{img} -u #{pri} -t #{time} '#{msg}'`
  end

  Autotest.add_hook :ran_command do |autotest|
    results = [autotest.results].flatten.join("\n")
    output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/)
    folder = "~/.autotest_icons/"
    if output  =~ /[1-9]\d*\sfailures?/
      notify "FAIL:", "#{output}", folder+"failed.png", 'critical', 10000
    elsif output  =~ /[1-9]\d*\spending?/
      notify "PENDING:", "#{output}", folder+"pending.png", 'normal', 10000
    else
      notify "PASS:", "#{output}", folder+"passed.png"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

注意:我的.autotest文件的大部分内容都是让linux中的弹出窗口显示我的测试是通过还是失败. …

ruby-on-rails autotest zentest spork rspec-rails

5
推荐指数
1
解决办法
567
查看次数

导轨:黄瓜不清洁DB

我在黄瓜和数据库事务方面遇到了一些问题 - 具体来说,当我运行测试套件时,之后不会清理数据库事务.

我正在使用spork,postgres运行rails 3.1.

最初feature/support/env.rb设置为使用database_cleaner,但在每次调用db时始终出现以下错误:

没有指定数据库.缺少参数:数据库.(ArgumentError)/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/postgresql_adapter.rb:22:in postgresql_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:innew_connection'/ Users/john /.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:302:in checkout_new_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:254:inblock(2级)结账时'/ Users/john/.rvm/gems/ruby​​-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:250:loop' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:250:inin checkout'/ Users/john /. rvm/rubies/ruby​​-1.9.2-p290/lib/ruby​​/1.9.1/monitor.rb:201:in mon_synchronize' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:249:incheckout' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/ activerecord -3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:151:in connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:388:inretrieve_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord- 3.1.0. rc4/lib/active_record/connection_adapters/abstract/connection_specification.rb:107:in retrieve_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/active_record.rb:7:inconnection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/ active_record /反 action.rb:17:in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/base.rb:77:inclean block in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in'/Users/ john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in each'/ Users /john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/database_cleaner.rb:9:in'之后'

我试过恢复常规交易,但没有快乐.我可以通过控制台(黄瓜环境)访问数据库并创建/删除/检索记录没有问题.下面添加了config/database.yml,features/support/env.rb,config/environments/cucumber.rb和rspec/spec_helper.rb文件.任何建议都非常感激 - 这个让我难过了一段时间:

CONFIG/database.yml的

default: &defaults
  adapter: postgresql
  username: rails_dev
  password: foobar

development:
  <<: *defaults
  database: fcct_d

test: &test
  <<: *defaults
  database: fcct_t …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails cucumber spork

5
推荐指数
1
解决办法
2178
查看次数

Spork无法加载这样的文件?

我有一个spork gem问题.每次我运行spork命令时都会遇到这个长错误:

evan@TheBeast-Computer:~/rails_projects/sample_app$ spork
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
cannot load such file -- /home/evan/rails_projects/sample_app/spec_helper (LoadError)
/home/evan/rails_projects/sample_app/spec/spec_helper.rb:57:in `require_relative'
/home/evan/rails_projects/sample_app/spec/spec_helper.rb:57:in `block in <top (required)>'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork.rb:24:in `prefork'
/home/evan/rails_projects/sample_app/spec/spec_helper.rb:6:in `<top (required)>'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:245:in `load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:245:in `block in load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:236:in `load_dependency'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:245:in `load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/test_framework.rb:138:in `block (2 levels) in preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/app_framework/rails.rb:8:in `preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/test_framework.rb:134:in `block in preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork.rb:62:in `exec_prefork'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/test_framework.rb:120:in `preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/run_strategy/forking.rb:25:in `preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/runner.rb:74:in `run'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/runner.rb:10:in `run'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/bin/spork:10:in `<top (required)>'
/home/evan/.rvm/gems/ruby-1.9.3-p194/bin/spork:23:in `load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/bin/spork:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是我的Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.5'

gem 'sqlite3'

group :assets …
Run Code Online (Sandbox Code Playgroud)

spork rspec-rails

5
推荐指数
1
解决办法
4437
查看次数

使用Spork重新定义常量

我正在使用以下技巧(来自http://mikbe.tk/2011/02/10/blazingly-fast-tests/)来确保模型在使用Spork的每个RSpec运行时重新加载:

Spork.each_run do
  load "#{Rails.root}/config/routes.rb"
  Dir["#{Rails.root}/app/**/*.rb"].each { |f| load f }
  # .....
end
Run Code Online (Sandbox Code Playgroud)

但是,每次运行测试时都会出现以下警告:

/myproject/app/models/model.rb:36: warning: already initialized constant CONFIGURABLE

我可以通过以下方式避免:

if !defined?(A_CONSTANT)

在每个常数之后,这看起来并不正确(但它确实有效).有关如何使其正常工作的任何建议?(即我的模型仍将在测试中重新加载,但我不必将if每个常量定义放在后面.)

rspec ruby-on-rails constants spork

5
推荐指数
1
解决办法
344
查看次数

如何从spork过渡到春天?

我目前正在使用Spork with Guard,Rspec和Cucumber.我想转移到Spring,但找不到任何需要更改的文档.

具体来说,我很好奇我是否需要更改我的:

require 'spork'

Spork.prefork do
  # ...
end

Spork.each_run do
  # ...
end
Run Code Online (Sandbox Code Playgroud)

...有类似的东西:

require 'spring'

Spring.prefork do
  # ...
end

Spring.each_run do
  # ...
end
Run Code Online (Sandbox Code Playgroud)

但是,我知道没有,Spring.prefork因为文档说的是这样.那么我应该简单地删除引用Spork或者我需要用某些东西替换它们吗?

rspec ruby-on-rails cucumber spork rails-spring

5
推荐指数
1
解决办法
884
查看次数

关于使用Spork运行规范的"PGError:没有连接到服务器"

我正在使用Ruby 1.9.2,Rails 3.1,Rspec,Postgres和Spork,但我无法让它们一起玩得很好.

第一次运行规范(Spork在后台运行)运行正常.但是,当我第二次运行规范时,它失败了:

Failure/Error: Unable to find matching line from backtrace
 PGError:
   no connection to the server
 # /Users/tom/.rvm/gems/ruby-1.9.2-p180@grapi/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/postgresql_adapter.rb:272:in `exec'
etc....
Run Code Online (Sandbox Code Playgroud)

任何提示赞赏!

rspec ruby-on-rails spork

4
推荐指数
1
解决办法
1262
查看次数

Spork-rails,rails 3.2和'没有这样的文件加载'

我在使用Rails 3.2 + Spork时遇到了麻烦.当我运行时,bundle exec spork我收到错误:

/usr/local/rvm/gems/ruby-1.9.2-p290@rails-3.2.1/bin/spork:19:in `load': no such file to load -- /usr/local/rvm/gems/ruby-1.9.2-p290@rails-3.2.1/gems/spork-1.0.0rc2/bin/spork (LoadError)
from /usr/local/rvm/gems/ruby-1.9.2-p290@rails-3.2.1/bin/spork:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

您可能已经注意到,我正在使用RVM来管理我的宝石.好几次,我都尝试在新的gemset中重新安装我的所有宝石.我没有运气.有没有其他人遇到这个?

我为我的Gemfile创建了一个要点:https://gist.github.com/1921929

我的包的要点:https: //gist.github.com/1925661

ruby-on-rails rvm spork

4
推荐指数
1
解决办法
1133
查看次数

Spork每次初始化导轨并缓慢运行

我需要帮助搞清楚为什么我的rspec测试运行缓慢.

我正在运行spork,guard和rspec.但是,似乎spork每次都重新初始化rails.我很难搞清楚如何调试此问题.我怀疑我使用的一些宝石是造成这种但没有证据的.

我认为它正在重装的原因是:

  • 在spork内部或外部运行需要相同的时间
  • 当我运行rails服务器时,我得到了这个警告(与SOLR gem有关)

    运行所有规格

    弃用警告:ActiveSupport :: Concern中的InstanceMethods模块将不再自动包含在内.请直接在Sunspot :: Rails :: SolrInstrumentation中定义实例方法.(从/home/dougt/replyinline/config/environment.rb:5调用)


这是我的spec_helper.rb

require 'rubygems'
require 'spork'
#uncomment the following line to use spork with the debugger
#require 'spork/ext/ruby-debug'

Spork.prefork do
  # Loading more in this block will cause your tests to run faster. However,
  # if you change any configuration or code from libraries loaded here, you'll
  # need to restart spork for it take effect.
# This file is copied to spec/ when you run 'rails …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails guard spork

4
推荐指数
1
解决办法
1849
查看次数

无法加载此类文件——mocha/object (LoadError)

当我运行 rspec 进行测试时,出现以下错误:

无法加载此类文件 -- mocha/object (LoadError) 问题出在config.mock_with :mocha以下行:

这是我的spec_helper.rb:

require 'rubygems'
require 'spork'

Spork.prefork do
  # Loading more in this block will cause your tests to run faster. However, 
  # if you change any configuration or code from libraries loaded here, you'll
  # need to restart spork for it take effect.
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'rspec/autorun'
  require 'capybara/rails'
  require 'capybara/rspec'
  #require 'spork/ext/ruby-debug'
  # Requires supporting ruby files with custom matchers and macros, …
Run Code Online (Sandbox Code Playgroud)

rspec spork rspec2 ruby-on-rails-3.2 ruby-mocha

3
推荐指数
1
解决办法
9024
查看次数