[rspec-users] rspec 2 not cleaning up after examples run?

David Chelimsky dchelimsky at gmail.com
Wed Jun 30 13:26:30 EDT 2010


On Jun 30, 2010, at 11:55 AM, Timo Rößner wrote:

> On Jun 29, 12:14 pm, David Chelimsky <dchelim... at gmail.com> wrote:
>> On Jun 29, 2010, at 2:50 AM, Timo Rößner wrote:
>> 
>> 
>> 
>>> On Jun 28, 5:35 pm, David Chelimsky <dchelim... at gmail.com> wrote:
>>>> On Jun 28, 2010, at 10:30 AM, Timo Rößner wrote:
>>>>> On Jun 28, 5:03 pm, David Chelimsky <dchelim... at gmail.com> wrote:
>>>>>> On Jun 28, 2010, at 10:00 AM, Timo Rößner wrote:
>> 
>>>>>>> Hey guys,
>> 
>>>>>>> I let the code speak for itself:
>> 
>>>>>>> Below are my currently failing specs, please don't pay too much
>>>>>>> attention to the specs themselves, I just want to give you a "real
>>>>>>> life example" of what's happening - the only interesting thing about
>>>>>>> the specs is that there is a call to Factory(:challenge) in each of
>>>>>>> them and a before-each-call putting out what's currently in the
>>>>>>> database:
>> 
>>>>>>>  describe 'featuring' do
>> 
>>>>>>>    before(:each) do
>>>>>>>      puts "Before Each:"
>>>>>>>      puts "Featured Challenges size: #{Challenge.featured.size}"
>>>>>>>      puts "Challenges count: #{Challenge.count}"
>>>>>>>    end
>> 
>>>>>>>    it 'should tell if a challenge is featured' do
>>>>>>>      challenge = Factory(:challenge, :feature_position => 1)
>>>>>>>      challenge.should be_featured
>>>>>>>    end
>> 
>>>>>>>    it 'should tell if a challenge is not featured' do
>>>>>>>      challenge = Factory(:challenge, :feature_position => 0)
>>>>>>>      challenge.should_not be_featured
>>>>>>>    end
>> 
>>>>>>>    it 'should feature a challenge' do
>>>>>>>      challenge = Factory(:challenge)
>>>>>>>      challenge.feature!
>>>>>>>      Challenge.featured.should == [challenge]
>>>>>>>    end
>> 
>>>>>>>    it 'should unfeature a challenge' do
>>>>>>>      challenge = Factory(:challenge, :feature_position => 1)
>>>>>>>      challenge.unfeature!
>>>>>>>      Challenge.featured.should be_empty
>>>>>>>    end
>>>>>>>  end
>> 
>>>>>>> Now to the interesting part:
>> 
>>>>>>> A spec run using rails 2.3.5 and rspec 1:
>> 
>>>>>>> bundle exec spec spec/models/challenge_spec.rb
>>>>>>> Before Each:
>>>>>>> Featured Challenges size: 0
>>>>>>> Challenges count: 0
>>>>>>> .Before Each:
>>>>>>> Featured Challenges size: 0
>>>>>>> Challenges count: 0
>>>>>>> .Before Each:
>>>>>>> Featured Challenges size: 0
>>>>>>> Challenges count: 0
>>>>>>> .Before Each:
>>>>>>> Featured Challenges size: 0
>>>>>>> Challenges count: 0
>>>>>>> ..............................
>> 
>>>>>>> -> Looks good.
>> 
>>>>>>> Here's the exact same spec run with rspec-2.0.0.beta.13 and
>>>>>>> rails-3.0.0.beta4:
>> 
>>>>>>> Before Each:
>>>>>>> Featured Challenges size: 0
>>>>>>> Challenges count: 0
>>>>>>> Before Each:
>>>>>>> Featured Challenges size: 1
>>>>>>> Challenges count: 1
>>>>>>> .Before Each:
>>>>>>> Featured Challenges size: 1
>>>>>>> Challenges count: 2
>>>>>>> Before Each:
>>>>>>> Featured Challenges size: 2
>>>>>>> Challenges count: 3
>> 
>>>>>>> So apparently the latest rspec doesn't clean up after examples at all?
>> 
>>>>>>> Is this a bug or a feature?
>> 
>>>>>> Bug, but please check if it's still true of beta.14.1.
>> 
>>>>> Hey David,
>> 
>>>>> I just tried it out using the latest rspec and rspec-rails:
>> 
>>>>> Gemfile:
>> 
>>>>>  gem 'rspec', '2.0.0.beta.14'
>>>>>  gem 'rspec-rails', '2.0.0.beta.14.1
>> 
>>>>> $ bundle show rspec
>>>>> ~/.bundle/ruby/1.8/gems/rspec-2.0.0.beta.14
>> 
>>>>> $bundle show rspec-rails
>>>>> ~/.bundle/ruby/1.8/gems/rspec-rails-2.0.0.beta.14.1
>> 
>>>>> Unfortunately, the bug still exists when using this configuration:
>> 
>>>>> Before Each:
>>>>> Featured Challenges size: 0
>>>>> Challenges count: 0
>>>>> .Before Each:
>>>>> Featured Challenges size: 1
>>>>> Challenges count: 1
>>>>> .Before Each:
>>>>> Featured Challenges size: 1
>>>>> Challenges count: 2
>>>>> FBefore Each:
>>>>> Featured Challenges size: 2
>>>>> Challenges count: 3
>> 
>>>> What's in your Gemfile and spec/spec_helper.rb?
>> 
>>>> ps - please post in-line or at the bottom so we can follow the thread.
>>> Hi David,
>> 
>>> ->http://gist.github.com/456941
>> 
>> I forked and made a couple of changes:http://gist.github.com/457034
>> 
>> * Added :development to the group declaration on line 31
>> * Changed rspec-rails to beta.14.2
>> * Removed the rspec declaration (it's a dependency of rspec-rails, so unnecessary)
>> * Changed what is now line 44 to what gets generated now
>> 
>> Not sure if this will fix anything, but let's see.
>> _______________________________________________
>> rspec-users mailing list
>> rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
> 
> Hey,
> 
> @Wincent alright, thanks.
> 
> @David
> 
> I changed my Gemfile and my spec_helper as you suggested (right now
> they are exactly the same as in your gist) and ran "bundle install".
> 
> Unfortunately this setup seems to cause another problem:
> 
> ( $ )  bundle exec spec spec/models/challenge_spec.rb
> /usr/lib/ruby/gems/1.8/gems/bundler-0.9.26/lib/bundler/
> shared_helpers.rb:153:in `bin_path': can't find executable spec
> (Gem::Exception)
> from ~/.bundle/ruby/1.8/bin/spec:19
> 
> ( $ )  bundle show rspec
> ~.bundle/ruby/1.8/gems/rspec-2.0.0.beta.15

The command is rspec in rspec 2. Try:

bundle exec rspec spec/models/challenge_spec.rb

Cheers,
David


More information about the rspec-users mailing list