I have the followed
group :test, :development do
gem 'rspec-rails', '~> 3.0'
gem "guard-rspec"
gem 'capybara'
gem 'factory_girl_rails'
gem 'turn'
gem 'guard' # NOTE: this is necessary in newer versions
gem 'poltergeist'
gem 'phantomjs', :require => 'phantomjs/poltergeist'
gem 'selenium-webdriver'
gem 'capybara-screenshot'
gem 'capybara-webkit'
gem 'zeus'
gem "parallel_tests"
gem 'launchy'
gem 'email_spec'
gem 'action_mailer_cache_delivery'
gem 'protractor-rails'
gem 'database_cleaner'
and in my spec_helper.rb
require 'capybara/rspec'
require 'factory_girl_rails'
require 'support/request_helpers'
RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
  config.include RequestHelpers
  config.expect_with :rspec do |expectations|
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
  end
  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end
end
Finally I have such a spec helper in the spec/support/request_helper.rb
module RequestHelpers
  def create_logged_in_user
    user = create(:user)
    login(user)
    user
  end
  def login(user)
    login_as user, scope: :user
  end
end
and factories.rb
# /spec/factories/factories.rb
FactoryGirl.define do
  factory :user do
    first "John"
    last 'Smith'
    email '[email protected]'
    password 'johnsmith123'
  end
end
Yes everytime I run rpsec it shows that
Factory not registered: user
And when I rune FactoryGirl.factories in the rails console, i can see 'user' is registered
=> #<FactoryGirl::Registry:0x007fa4e0e18160
 @items=
{
    :user=>
        #<FactoryGirl::Factory:0x007fa4e2371200
         @aliases=[],
         @class_name=nil,
         @compiled=false,
         @definition=
          #<FactoryGirl::Definition:0x007fa4e2370f58
           @additional_traits=[],
           @attributes=nil,
           @base_traits=[],
           @callbacks=[],
           @compiled=false,
           @constructor=nil,
           @declarations=
            #<FactoryGirl::DeclarationList:0x007fa4e2370ee0
             @declarations=
              [#<FactoryGirl::Declaration::Static:0x007fa4e2370b48 @ignored=false, @name=:first, @value="john">,
               #<FactoryGirl::Declaration::Static:0x007fa4e2370a80 @ignored=false, @name=:last, @value="smith">,
               #<FactoryGirl::Declaration::Static:0x007fa4e23709b8 @ignored=false, @name=:email, @value="[email protected]">,
I read through the Github setup docs for factory_girl_rails, rspec-rails multiple times but found no solution.
Does anyone know where I should look to detect the problem?
Thanks!
EDITED added contents of spec/rails_helper.rb updated Wed, 10 Jun 2015
ENV['RAILS_ENV'] ||= 'test'
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
require 'capybara/poltergeist'
require 'capybara-screenshot/rspec'
Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new(app, :phantomjs => Phantomjs.path, :inspector => true)
end
Capybara.javascript_driver = :webkit
include Warden::Test::Helpers
RSpec.configure do |config|
  config.infer_spec_type_from_file_location!
end
				
                        
I had the same issue
Why is FactoryBot not finding our factories only inside RSpec, I do not know. But making FactoryBot explicitly find my definitions worked.
So you just need to add this to your spec_helper:
FactoryBot.find_definitionsin my case, I followed the general instructions in this answer: https://stackoverflow.com/a/49436531/8790125 So I create a file
spec/support/factory_bot.rbwith this code (note thefind_definitions):and then required on
rails_helper: