标签: spork

Spork不会在lib中重新加载文件

我正在使用spork运行rspec,我无法在lib中获取文件以在连续的rspec运行时重新加载.我试过在'Spork.each_run'中要求提供文件

我没有收到任何回复,所以我会尝试进一步解释.我的Rails应用程序中有以下文件:

  • LIB/car.rb
  • 规格/ lib目录/ car_spec.rb

要运行测试,首先我开始spork然后运行'rspec spec/lib/car_spec.rb'

RSpec没有看到我对我的Car类的更改,除非我重新启动spork.

有帮助吗?

我上线了:

  • rails 3.1.0.rc6
  • rspec 2.6.0
  • spork 0.9.0.rc9

ruby rspec ruby-on-rails spork

8
推荐指数
1
解决办法
1304
查看次数

Spork,RSpec和database_cleaner销毁开发数据库

我的Rails 3.1应用程序中有以下spec_helper.rb文件.我正在使用Spork加载环境以便进行测试.在将Spork加入混合物之前,我的所有测试都有效.添加spork之后,测试数据库在测试运行之间没有得到正确的清除,这导致了我的一些期望.

按照其他说明,我将database_cleaner添加到下面列出的代码中; 但是,现在,开发数据库以及测试数据库正在被清理.ENV ["RAILS_ENV"]呼叫在此呼叫期间返回测试.

有没有办法显式限制对DatabaseCleaner.clean_with(:truncation)的调用只影响测试数据库?

require 'rubygems'
require 'spork'

Spork.prefork do
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'shoulda/matchers/integrations/rspec'
  require 'database_cleaner'

  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

  RSpec.configure do |config|
    config.mock_with :mocha

    config.formatter = 'documentation'
    config.use_transactional_fixtures = true

    config.before(:suite) do
      DatabaseCleaner.strategy = :truncation
    end

    config.before(:each) do
      DatabaseCleaner.start
    end

    config.after(:each) do
      DatabaseCleaner.clean
    end
  end
end

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

更新:这是我的database.yml文件

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-plugins spork ruby-on-rails-3

8
推荐指数
1
解决办法
2644
查看次数

当我使用Spork时,如何确保帮助程序和模型在RSpec中重新加载?

看起来我的助手(有时是我的模特)在每次使用Spork时都没有重新加载.我应该把什么放进我的"Spork.each_run"区块?

rspec ruby-on-rails helpers spork rspec-rails

8
推荐指数
2
解决办法
2241
查看次数

SimpleCov报告在使用Spork运行RSpec测试后没有在Rails 3应用程序中生成

我刚刚安装了SimpleCov gem以在我的Rails 3.2.6应用程序上生成代码覆盖率报告,它与RSpec一起工作很好,而不是Spork.我可以通过运行获得所需的正确报告rspec --no-drb spec/,但我也想让它们使用Spork运行rspec spec/.

鉴于有人在这方面取得了成功,我的设置似乎有误.我已经阅读了设置说明以及声称为Spork用户修复的GitHub问题,但仍然没有运气.我想知道是否有人可以提供他们可以用作参考的工作规范/ spec_helper.rb文件的完整示例,因为广泛的谷歌搜索只发现了片段.根据其他网站的建议,我尝试将config.cache_classesin config/environments/test.rb从默认值更改truefalseto !(ENV['DRB'] == 'true'),没有运气.

作为参考,这是我的设置方式:

的Gemfile

group :development, :test do
  # ...
  gem 'rspec-rails', '2.10.1'
end

group :test do
  # ...
  gem 'spork', '0.9.0'
  gem 'simplecov', '0.6.4', require: false
end
Run Code Online (Sandbox Code Playgroud)

的.spec

--colour
--drb
Run Code Online (Sandbox Code Playgroud)

spec/spec_helper.rb(根据GitHub问题更改)

require 'simplecov'
SimpleCov.start 'rails'

require 'rubygems'
require 'spork'

Spork.prefork do
  unless ENV['DRB']
    require 'simplecov'
    SimpleCov.start 'rails' …
Run Code Online (Sandbox Code Playgroud)

rspec code-coverage spork ruby-on-rails-3 ruby-on-rails-3.2

8
推荐指数
1
解决办法
4293
查看次数

Silence Rails模式加载spork

我在rails 3.0环境中运行rspec.我们刚刚切换到在内存数据库中使用sqlite3进行测试.

要使其工作,您需要在每次运行时加载架构.

这样做的问题在于您从架构加载中获得了大量输出.

根据这一点,似乎Spork以某种方式捕获此输出.所以无论你做什么(silence_stream),架构加载的输出仍将继续通过.

有没有办法在spork中保持沉默?输出会减慢整个测试周期并使其非常烦人.

sqlite sqlite3-ruby spork ruby-on-rails-3

7
推荐指数
1
解决办法
1007
查看次数

使用带有Rails/Spork/RSpec的database_cleaner时的SQLite3 :: SQLException

当试图在database_cleaner的GitHub页面上关注示例时,我从RSpec遇到以下错误:

 ActiveRecord::StatementInvalid:
   SQLite3::SQLException: cannot start a transaction within a transaction: begin transaction
Run Code Online (Sandbox Code Playgroud)

spec_helper.rb中使用的配置是:

require 'spork'
require 'database_cleaner'

Spork.prefork do
 # .. snip
  RSpec.configure do |config|
   # .. snip
    config.before(:suite) do
      DatabaseCleaner.strategy = :transaction
      DatabaseCleaner.clean_with(:truncation)
    end

    config.before(:each) do
      DatabaseCleaner.start
    end

    config.after(:each) do
      DatabaseCleaner.clean
    end
  end
end

Spork.each_run do

end
Run Code Online (Sandbox Code Playgroud)

sqlite rspec ruby-on-rails spork

7
推荐指数
2
解决办法
3235
查看次数

Guard + spork + Rspec问题 - 如何删除Test :: Unit的钩子?

我在Ubuntu 12.04的rails 3.2.11项目上运行了guard-spork.

我从railstutorial.org获得了配置.

Spork开始,然后后卫说它找不到spork开始,等待30秒,然后60秒,然后工作.

它可以工作,但每次都会出错.只是想知道我做错了什么.

如何删除Test :: Unit的钩子?

错误信息:

16:31:58 - INFO - Starting Spork for RSpec, Test::Unit
Using RSpec
Preloading Rails environment
Couldn't find a supported test framework that begins with 'testunit'

Supported test frameworks:
( ) Cucumber
(*) RSpec

Legend: ( ) - not detected in project   (*) - detected
Loading Spork.prefork block...
Rack::File headers parameter replaces cache_control after Rack 1.5.
Spork is ready and listening on 8989!
16:32:28 - ERROR - Could not start …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails guard testunit spork

7
推荐指数
2
解决办法
2668
查看次数

如何使用Rails.vim和spork?

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

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

vim rspec ruby-on-rails spork

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

与Spork Discrepancy的工厂女孩​​协会

我正在尝试使用Spork将Factory Girl用于RSpec.每当我在没有spork的情况下运行测试时,一切都会通过,但是当我使用Spork运行它时,所有试图创建依赖于另一个工厂的工厂实例的测试都会失败.例如:

3) Invitation has a correctly formed body
   Failure/Error: request = FactoryGirl.create(:request, ....)
   NoMethodError:
     undefined method `user=' for #<Request:0x007f86b6a87890>
Run Code Online (Sandbox Code Playgroud)

我的factories.rb代码看起来大致如此

FactoryGirl.define do
  factory :user do
    sequence(:first_name) { |n| "first_name#{n}" }
    sequence(:last_name) { |n| "last_name#{n}" }
  end

  factory :request do
    association :user, :factory => :user, :is_walker => false
  end
end
Run Code Online (Sandbox Code Playgroud)

我的代码似乎只有在存在关联时才会中断,然后它会尝试在上面调用setter :user.为什么会发生这种情况?

这是我正在使用的版本

gem 'rails', '3.0.7'
gem 'rspec-rails', '2.6.1'
gem 'spork', '0.9.0.rc5'
gem 'factory_girl_rails', '1.0'
Run Code Online (Sandbox Code Playgroud)

rspec spork ruby-on-rails-3 factory-bot

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

你怎么得到黄瓜/警卫来过滤像@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
查看次数