标签: spork

rspec,factory_girl和datamapper的spork和cache_classes问题

我有Spork测试服务器的问题.

如果我在config/environments/test.rb中设置config.cache_classes = false,那么规范就会开始出现rasie错误.

Failure/Error: task = Factory(:something, :foo => @foo, :bar => @bar)
     DataMapper::ImmutableError:
       Immutable resource cannot be modified
Run Code Online (Sandbox Code Playgroud)

这是我的spec_helper.rb:

require 'spork'

Spork.prefork do
  if ENV['CODE_COVERAGE'] == '1'
    require 'simplecov'
    SimpleCov.start 'rails'
  end

  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'webmock/rspec'
  require 'factory_girl'

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

  RSpec.configure do |config|
    config.mock_with :mocha
    config.include Rails.application.routes.url_helpers
    config.include UrlHelper

    config.before(:each) do
      repository(:default) do
        transaction = DataMapper::Transaction.new(repository)
        transaction.begin
        repository.adapter.push_transaction(transaction)
      end
    end

    config.after(:each) do …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails datamapper spork factory-bot

13
推荐指数
2
解决办法
4571
查看次数

save_and_open_page和spork,spork正在失去测试套件/输出

当我使用spork运行我的rspec测试时,每次使用capybara的save_and_open_page时,spork都会丢失测试套件..或者可能不再输出任何东西......

查看日志

# => without save_and_open_page
09:04:24 - INFO - Spork server for RSpec, Test::Unit successfully started

09:04:24 - INFO - Guard::RSpec is running
09:04:24 - INFO - Running all specs
Running tests with args ["--drb", "-f", "progress", "-r", "/Users/myuser/.rvm/gems/ruby-1.9.3-p392/gems/guard-rspec-2.5.2/lib/guard/rspec/formatter.rb", "-f", "Guard::RSpec::Formatter", "--failure-exit-code", "2", "spec"]...
................

Finished in 4.1 seconds
16 examples, 0 failures


Randomized with seed 50331

Done.

# => with save_and_open_page, no .... are shown anymore
09:04:29 - INFO - Guard is now watching at '/Users/myuser/coding/myproject'
09:04:39 - …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails capybara spork ruby-on-rails-3

13
推荐指数
1
解决办法
322
查看次数

如何在Rails测试中结合自动测试和spork?

自动测试通过仅运行更改的测试来提高测试运行的速度.

但我想通过使用spork预加载Rails环境来进一步推动它,这样我将获得更快的反馈.

这可能吗?

自动测试:https://github.com/grosser/autotest

Spork:http://github.com/timcharper/spork

testing rubygems ruby-on-rails autotest spork

11
推荐指数
2
解决办法
3692
查看次数

Spork不会重新加载代码

我正在使用以下宝石和ruby-1.9.3-p194:

  • 轨道3.2.3

  • rspec-rails 2.9.0

  • spork 1.0.0rc2

  • 警卫队0.6.1

Gemfile.lockGemfile中提供了已使用gems的完整列表.

我正在使用此配置文件:

如果我修改任何模型(或app/validators等等中的自定义验证器)重新加载代码不起作用.

我的意思是当我运行规格(在防守控制台上按Enter键)Spork包含"旧代码",我得到过时的错误消息.但是当我手动重启Guard和Spork(CTRC-C CTRL-d后卫)时,一切正常.但几次后它已经累了.

问题:

有人可以看看我的配置文件并修复阻止更新代码的错误.

或者这可能是最新Rails版本的问题?


PS这个问题在一些项目中重复并重复(在某些项目上).但我还没弄清楚为什么会发生这种情况.

PS2也许这个问题与此有关ActiveAdmin?当我在app/admin代码中更改文件时重新加载.

rspec ruby-on-rails guard spork ruby-on-rails-3

11
推荐指数
3
解决办法
3602
查看次数

Rack :: Test导致ActiveRecord :: AssociationTypeMismatch

我在运行所有规格时遇到问题.

    ActiveRecord::AssociationTypeMismatch:
       Affiliate(#2154746360) expected, got Affiliate(#2199508660)

我的模型似乎被加载了两次.

我已经将Rack :: Test要求定义"app"方法的问题隔离开了.

require 'rack/test'
include Rack::Test::Methods

# app method is needed for rack-test
def app
  Rails.application
end
Run Code Online (Sandbox Code Playgroud)

如果我注释掉Rails.application我的机架规格不起作用,但我的所有其他规格都可以正常工作.使用的Rails.application,在"应用程序"的方法引入了上述错误.

如果我单独运行我的规格,一切正常.我正在使用Spork预加载我的环境,我认为模型首先由Spork加载,然后Rails.application在我的"app"方法中调用它们时重新定义.

关于如何解决这个问题的任何想法?我不确定是否有另一种方法可以在"app"方法中设置我的Rails应用程序.

rspec ruby-on-rails spork

10
推荐指数
1
解决办法
575
查看次数

可以用耙子任务进行spork工作吗?

Rake任务遇到与运行测试相同的问题:Rails启动过程在任务运行之前需要很长时间.

有没有办法将spork和rake整合在一起?

ruby rake ruby-on-rails spork

10
推荐指数
2
解决办法
1337
查看次数

带有spork的Rails 3.2.3在黄瓜测试中不识别辅助方法

我有一个使用rails 3.2.3和spork 1.0.0rc2的应用程序.当我进行黄瓜测试时,我得到:

ActionView::Template::Error: undefined local variable or method `page_title'
Run Code Online (Sandbox Code Playgroud)

在我的应用程序助手中定义了page_title.在最后一次捆绑更新之前,我不确定是什么打破了它们.

谁有同样的问题?

ruby-on-rails cucumber spork

10
推荐指数
1
解决办法
716
查看次数

即使使用Spork,Rspec在Windows上仍然很慢

我已经按照本教程关于使用spork加速rspec,而且我使用的是带有ruby 1.9.2和rails 3.2.5的win7 x64盒子.一切正常,但测试仍然执行缓慢.spork是否因为操作系统不支持分叉而在Windows上做不了多少?

我还能做些什么来加快速度吗?

我也发现了类似的问题,并观看了Corey Haines关于快速测试视频.我很喜欢这个视频,但是当我们的工具状态(由于rails启动时间导致测试速度慢,在这种情况下)决定了我们如何构建代码时,我不禁感到某些东西已经关闭.如果那个缓慢的启动时间不存在,他的方法是否需要?另一方面,测试需要10-30秒才能运行,因此TDD的许多好处都会丢失,我也会看到他的观点.

如果它是相关的,这里是spork的控制台输出,因为rspec被执行了几次:

    $ bundle exec spork
Using RSpec
  -- Starting to fill pool...
     Wait until at least one slave is provided before running tests...
  ** CTRL+BREAK to stop Spork and kill all ruby slave processes **
Spork is ready and listening on 8989!
  -- Rinda Ring Server listening for connections...

   -- build slave 1...
Preloading Rails environment
   -- build slave 2...
Preloading Rails environment
Loading Spork.prefork …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails spork

10
推荐指数
1
解决办法
1361
查看次数

使用specs测试,来自railstutorial第3章的capybara不起作用(have_selector('title',:text =>'| Home'))

我正在研究ruby.railstutorial.org/ruby-on-rails-tutorial-book.我使用rails 3.2.7,spork,rspec,capybara,launchy和一些警卫:)

我在第3章中有一个非常奇怪的问题:测试:

似乎测试不适用于<head>-Tag中的内容.如果我将<title>-tag放在<body>-tag而不是head-tag中,它可以正常工作.当我把<h1>-tags放在<title>里面 - <head>标签时,它也有效.这很奇怪,不是吗?

请帮帮我搞清楚.

示例来自:ruby.railstutorial.org/chapters/static-pages#code:title_test:

it "should have the right title" do
  visit '/static_pages/home'
  page.should have_selector('title',
                    :text => "Ruby on Rails Tutorial Sample App | Home")
end
Run Code Online (Sandbox Code Playgroud)

错误消息是:

失败:

1)静态页面主页应该有标题'Home'失败/错误:page.should have_selector('title',:text =>'| Home')Capybara :: ExpectationNotMet:期望找到带有文本的css"title" |主页"但没有比赛.还找到"",它匹配选择器但不是所有过滤器.#./spec/requests/static_pages_spec.rb:15:在'块(3级)中'

那个工作:

it "should have the h1 'Sample App'" do
  visit '/static_pages/home'
  page.should have_selector('h1', :text => 'Sample App')
end
Run Code Online (Sandbox Code Playgroud)

呈现的HTML文件:

<!DOCTYPE html>
<html>
<head>
  <title>Ruby on Rails Tutorial Sample App | …
Run Code Online (Sandbox Code Playgroud)

testing capybara spork rspec-rails ruby-on-rails-3.2

10
推荐指数
3
解决办法
5500
查看次数

Rails,Spork和调试器

我使用Spork与Guard + Rspec,但调试器无法按预期工作:

  • require 'spork/ext/ruby-debug'刚刚补充说require 'spork'

  • 它在debugger断点上正确停止......

  • ...但我无法访问irb,它吐:Command is available only in local mode.

你知道怎么解决这个问题吗?

谢谢,


PS:我当然读过这个问题,但它有点过时而且不起作用.

PS2:我想避免使用.

PS3:我也在这里发布了这个问题.

rspec ruby-on-rails guard spork ruby-on-rails-3

9
推荐指数
1
解决办法
2160
查看次数