RSpec test suite runs only one file after upgrading ActiveRecord from 4.0.13 -> 4.1.12

17 views
Skip to first unread message

Brendan Callahan

unread,
Jul 30, 2015, 11:06:45 AM7/30/15
to rspec
Platform: JRuby 1.7.21
RSpec version: 3.2.0
Other details of application: Sinatra server running against ActiveRecord (no rails or rspec-rails)

Test extras: FactoryGirl, Simplecov

The issue is as follows. I run rspec either with
jruby -S rake spec
or
jruby -S bundle exec rspec

Before the upgrade, I am able to run my full test suite with either command. (1900 examples or so)
After the upgrade, I get the following odd behavior:
  • When I run the full test suite, it runs a single file only. Seemingly, it picks up the first test file when looking at the file and folder structure alphabetically.
  • When I try to target a file other than the one that is run with the full command, it says 0 examples, 0 failures

I've tried the following things to remedy / confirm the situation.

  • Upgrading to the latest rspec
  • Downgrading AR to see if some unrelated change caused this. It works again on 4.0.13.
  • Disabling simplecov and almost everything else other than factory girl in my test suite
  • Fiddling with rspec configuration via both .rspec file and config block in spec_helper
  • Dropping include of FactoryGirl::Syntax::Methods from my rspec config block.
    • This one gives ~1300 examples and failures.
    • Wasn't to get any other traction here, and its not really feasible for to remove it from my test suite.

Rough outline of my spec_helper.rb is at the bottom of post, I omitted a few things and replaced with < description of what it was >


Please let me know if anybody has seen this problem, has any ideas as to what might cause it or fix it. I'm at a loss here. Happy to provide any other relevant details.


Thanks,

Brendan


# coding: UTF-8
require "bundler/setup"

< set an environment variable >

require 'pp'
require "rspec"
require 'rspec/collection_matchers'
require "factory_girl"
require 'simplecov'
require 'sidekiq/testing'

SimpleCov.start do
add_filter('.bundle')
add_filter('spec')

# Write coverage output to CircleCI's artifacts directory
if ENV['CIRCLE_ARTIFACTS']
dir = File.join("..", "..", "..", ENV['CIRCLE_ARTIFACTS'], "coverage")
coverage_dir(dir)
end
end

< require two app-specific helper files >

FactoryGirl.find_definitions

< code that connects to database >

RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
end


Reply all
Reply to author
Forward
0 new messages