标签: spork

spork和rspec'脚本/控制台测试'没有加载整个环境?

我正在尝试加载控制台以与我的一些rspec模拟助手进行交互.我期望运行script/console test会加载类似于我运行时的env spec.但是,情况似乎并非如此.看起来好像spec_helper永远不会加载.或者,如果是,它实际上并没有贯穿逻辑,因为spork已经污染了它.

简而言之,是否有一种快速简便的方式来进行交互式的rspec派对?

rspec ruby-on-rails irb script-console spork

6
推荐指数
1
解决办法
878
查看次数

如何使用Rails.vim和spork?

如果我在rails项目中,使用rails.vim进行编辑,我该如何获得:通过Spork运行规范?

它主要只是一个问题:通过"-o"标志Rake知道项目的specs/spec.opts文件?

vim rspec ruby-on-rails spork

6
推荐指数
1
解决办法
510
查看次数

使用spork的Rails项目 - 总是要使用spork?

如果我在我的rails项目中使用spork并且有这样的spec_helper.rb文件

require 'spork'

Spork.prefork do
  ...
end

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

这是否意味着我需要在运行我的规格时总是运行spork rspec spec?意思是,如果我还没有$ spork在终端窗口中执行,是否意味着我的规格将无法正常运行?

ruby rspec ruby-on-rails spork

6
推荐指数
1
解决办法
3597
查看次数

为什么我的rspec测试在Ruby 1.9.2中的运行速度比1.8.7慢?

我正在使用spork来测试Sinatra应用程序,使用Ruby 1.9.2,测试运行时间约为3.5秒,但在Ruby 1.8.7中,它们平均为1.2秒.我确实尝试过Ruby 1.9.3甚至是JRuby,但他们使用的宝石有一些错误.有没有办法将Ruby 1.9.2的rspec性能提升到1.8.7的水平?

我的Gemfile:

source :rubygems
gem 'sinatra', '1.3.1'
gem 'thin', '1.3.1'
gem 'haml', '3.1.4'
gem 'datamapper', '1.2.0'
gem 'dm-postgres-adapter', '1.2.0'
gem 'carrierwave', '0.5.8'
gem 'carrierwave-datamapper', '0.2.0'

group :test do
  gem "dm-sqlite-adapter"
  gem "spork"
  gem "rspec"
  gem "rack-test"
end
Run Code Online (Sandbox Code Playgroud)

spec_helper.rb:

require 'rubygems'
require 'spork'
require 'sinatra'
require 'rack/test'
require 'rspec'

require File.join(File.dirname(__FILE__), '..', 'app.rb')
require File.join(File.dirname(__FILE__), '..', 'model/model.rb')

Spork.prefork do
  set :environment, :test
  set :files, "test_files"
end

Spork.each_run do
  RSpec.configure do |config|
    config.before(:each) { DataMapper.auto_migrate! } …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing rspec sinatra spork

6
推荐指数
1
解决办法
365
查看次数

你怎么得到黄瓜/警卫来过滤像@wip这样的标签?

我正在运行spork和后卫,我的RSpec测试都运行正常.为了加快测试速度,我可以使用放在.rspec文件中的标签成功过滤我的RSpec测试.

.rspec

--colour
--debug
--tag focus
--tag now
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然我无法过滤黄瓜标签.黄瓜每次运行时都会运行所有内容或只运行更改的文件.

我怎样才能让黄瓜/ spork/guard尊重像@ wip,@ no等标签并只运行那些测试?有没有相当于.rspec黄瓜标签的文件?

guard cucumber spork

6
推荐指数
1
解决办法
2706
查看次数

超类不匹配,结构,重装和Spork

假设有以下课程

# derp.rb
class Derp < Struct.new :id
end
Run Code Online (Sandbox Code Playgroud)

当我load "./derp.rb"两次程序失败时TypeError: superclass mismatch for class Derp.好的,这可以用require.来管理.但是如何使用Spork为每次测试重新加载这些类?require显然不会工作因为它缓存加载的文件.

ruby inheritance class spork

6
推荐指数
1
解决办法
1308
查看次数

为什么警卫开始为rspec和黄瓜开始spork,即使我只想为使用组的rspec启动它?

在我的Gemfile中......

group :development, :test do
  gem 'capybara', "1.1.2"
  gem 'database_cleaner', "0.7.0"

  gem 'cucumber', "1.1.2"
  gem 'cucumber-rails', "1.2.0"

  gem 'rspec-rails', "2.7.0"

  gem 'spork', "0.9.0.rc9"

  gem 'launchy' #launches the page

  gem 'guard-spork', "0.3.1"
  gem 'guard-rspec', "0.5.4"
  gem 'guard-cucumber', "0.7.4"

  gem 'factory_girl_rails'
end
Run Code Online (Sandbox Code Playgroud)

我的Guardfile有两组(:spe​​cs和:features).

group :specs do

  guard :spork, :rspec_env => { 'RAILS_ENV' => 'test' } do
    watch('config/application.rb')
    watch('config/environment.rb')
    watch(%r{^config/environments/.+\.rb$})
    watch(%r{^config/initializers/.+\.rb$})
    watch('spec/spec_helper.rb')
  end

  guard :rspec, :version => 2 do
    watch(%r{^spec/.+_spec\.rb$})
    watch(%r{^lib/(.+)\.rb$})     { |m| "spec/lib/#{m[1]}_spec.rb" }
    watch('spec/spec_helper.rb')  { "spec" }

  # # Rails example …
Run Code Online (Sandbox Code Playgroud)

rspec guard cucumber spork

6
推荐指数
1
解决办法
838
查看次数

如何在Spork运行时在ApplicationHelper规范中包含路由?

我有一个rspec规范:

require "spec_helper"

describe ApplicationHelper do
  describe "#link_to_cart" do
    it 'should be a link to the cart' do
      helper.link_to_cart.should match /.*href="\/cart".*/
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

和ApplicationHelper:

module ApplicationHelper
  def link_to_cart
    link_to "Cart", cart_path
  end
end
Run Code Online (Sandbox Code Playgroud)

这在访问站点时有效,但规范失败,并显示有关路由的RuntimeError不可用:

RuntimeError:
   In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers
Run Code Online (Sandbox Code Playgroud)

因此,我Rails.application.routes.url在我的规范中包含了spec_helper-file,甚至包括ApplicationHelper它本身,都无济于事.

编辑:我正在通过spork运行测试,也许这与它有关并导致问题.

在使用Spork运行时,如何包含这些路线助手?

rspec helper rails-routing spork

6
推荐指数
2
解决办法
6224
查看次数

Spork在我的Rails应用程序中导致未定义的方法错误?

我有一个标准的Rails 3.2应用程序,有一些奇怪的行为正在进行.

我可以在rspec spec/没有spork运行的情况下运行,所有测试都没有问题.

然后我点起spork并再次运行规格.这一次,每次接触我的邮件的测试都会失败并出现同样的错误:

Failures:

  1) InvitationsController GET accept with non-matching token should redirect to the root path
     Failure/Error: let!(:invitation) { Factory :invitation }
     NoMethodError:
       undefined method `invite' for InvitationMailer:Class
     # ./app/models/invitation.rb:29:in `send_email'
     # ./spec/controllers/invitations_controller_spec.rb:5:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

然后,只是为了让它变得有点奇怪,我可以运行单独的目录或规格,无论是否运行spork,一切都没有问题.例如rspec spec/mailersrspec spec/models.

这是我被告知未定义的方法:

class InvitationMailer < ActionMailer::Base
  default from: APP_CONFIG[:default_from]

  def invite(invitation)
    @invitation = invitation

    mail(to: @invitation.recipient_email, subject: "the subject")
  end
end
Run Code Online (Sandbox Code Playgroud)

有什么想法会发生什么?

ruby rspec ruby-on-rails spork rspec2

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

Guard + Spork问题(Guard :: Spork未能实现其<start>)

我在迈克尔·哈特尔的Rails Tutorial之后用Spork运行了Guard,我遇到了这个问题.以下是错误消息:

20:45:58 - INFO - Starting Spork for RSpec, Test::Unit
20:45:58 - ERROR - Guard::Spork failed to achieve its <start>, exception was:
> [#B57790298EE3] ChildProcess::LaunchError: No such file or directory - bundle exec spork -p 8989
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/childprocess-0.3.9/lib/childprocess/unix/fork_exec_process.rb:54:in `l\aunch_process'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/childprocess-0.3.9/lib/childprocess/abstract_process.rb:72:in `start'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-spork-1.2.0/lib/guard/spork/spork_instance.rb:38:in `start'

> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-spork-1.2.0/lib/guard/spork/runner.rb:33:in `each'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-spork-1.2.0/lib/guard/spork/runner.rb:33:in `launch_sporks'

> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-spork-1.2.0/lib/guard/spork.rb:21:in `start'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-1.7.0/lib/guard/runner.rb:99:in `block in run_supervised_task'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-1.7.0/lib/guard/runner.rb:97:in `catch'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-1.7.0/lib/guard/runner.rb:97:in `run_supervised_task'
> [#B57790298EE3] /home/us/.rvm/gems/ruby-2.0.0-p0/gems/guard-1.7.0/lib/guard/runner.rb:54:in `block (2 …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails guard spork

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