0

레일스 엔진 인 소셜 스트림 젬을 기반으로 응용 프로그램을 구축하고 있습니다. 나는 Rakefile을 가지고있다. 내 Gemfile에 factory-girl gem을 포함 시켰지만 어떤 이유 때문에 레이크 작업이 해당 클래스에서 실패합니다.레일 엔진에 대한 테스트 실행 중 오류가 발생했습니다.

보석에 많은 테스트가 있습니다. 실행하고 싶습니다.

# Helpers for building the post activity 
# 
class ActivityObjectSpecHelper < ActiveRecord::Base 
    set_table_name "activity_objects" 
end 

class PostSpecHelper < ActiveRecord::Base 
    set_table_name "posts" 

    belongs_to :activity_object_spec_helper, :foreign_key => "activity_object_id" 
end 

Factory.define :activity_object_spec_helper do |a| 
    a.object_type "Post" 
    a.description "Post spec helper" 
end 

Factory.define :post_spec_helper do |p| 
    p.association :activity_object_spec_helper 
end 




/Users/sean/.rvm/gems/ruby-1.9.3-p327/gems/social_stream-base- 1.1.4/spec/factories/activity.rb:13:in `<top (required)>': uninitialized constant Factory (NameError) 
from /Users/sean/Dropbox/fluent/sstest/spec/spec_helper.rb:22:in `block in <top (required)>' 

Rakefile

#!/usr/bin/env rake 

require 'rspec/core' 
require 'rspec/core/rake_task' 
require 'resque/tasks' 

require File.expand_path('../config/application', __FILE__) 

Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection } if Resque.present? 

# Include social_stream-base spec 
def bsp(str) 
    base_spec_path = File.join(Gem::Specification.find_by_name('social_stream- base').full_gem_path, 'spec/') 
    File.join(base_spec_path, str) 
end 
RSpec::Core::RakeTask.new(:spec) do |s| 
    s.pattern = ['./spec/**/*_spec.rb', 
      bsp('./controllers/users_controller_spec.rb'), 
      bsp('./controllers/notifications_controller_spec.rb'), 
      bsp('./controllers/likes_controller_spec.rb'), 
      bsp('./controllers/profiles_controller_spec.rb'), 
      bsp('./controllers/comments_controller_spec.rb'), 
      bsp('./controllers/frontpage_controller_spec.rb'), 
      bsp('./controllers/posts_controller_spec.rb'), 
      bsp('./controllers/representations_spec.rb'), 
      bsp('./controllers/groups_controller_spec.rb'), 
      bsp('./controllers/settings_controller_spec.rb'), 
      bsp('./models/profile_spec.rb'), 
      bsp('./models/user_spec.rb'), 
      bsp('./models/tie_spec.rb'), 
      bsp('./models/activity_spec.rb'), 
      bsp('./models/actor_spec.rb'), 
      bsp('./models/group_spec.rb'), 
      bsp('./models/like_spec.rb'), 
      bsp('./models/post_spec.rb') 
     ] 
end 

task :default => [ :spec, 'assets:precompile' ] 

Sstest::Application.load_tasks 

답변

2

나는 공장이 만들어진 생각한다 : 보석에서/사용자/숀/보관/유창/sstest

실패한 코드 : 레일 응용 프로그램에서 살고 factory-girl의 이전 버전은 클래스 이름이 어느 시점에서 변경 되었기 때문에. Gemfile에 버전 1.3.3을 지정하십시오.

최신 버전을 사용하려면 구문을 업데이트해야합니다. FactoryFactoryGirl으로 바꾸십시오. 자세한 내용은 문서를 확인하십시오. https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md

+0

감사합니다. – ardochhigh

관련 문제