[rspec-users] Can't run specs after upgrading gems... get 0 tests, 0 assertions...

David Chelimsky dchelimsky at gmail.com
Tue Oct 6 10:31:58 EDT 2009


On Sun, Oct 4, 2009 at 6:35 PM, Stephen Eley <sfeley at gmail.com> wrote:
> On Sun, Oct 4, 2009 at 4:15 PM, Paco Guzman <lists at ruby-forum.com> wrote:
>>
>> If I change to :lib => false I got the same text in the execution. But
>> If I uninstall test-unit 2.0.3 like Len said the examples executes
>> right.
>
> There's a pernicious known bug in RSpec that causes it to fail with
> newer versions of the test-unit gem.  This has a stronger impact on
> those of us using Ruby 1.9, which doesn't include Test::Unit at all,
> and is somewhat documented here:
>
> http://wiki.github.com/dchelimsky/rspec/ruby-191
>
> I made a brief attempt at one point to figure out what broke with
> newer Test::Unit versions, but got a bit lost just setting up the
> RSpec-Dev project to pass all specs.  Really troubleshooting RSpec
> internals is probably beyond me.
>
> So I'll be a smartass instead: David, given the broad impact and
> confusing output of the test-unit dependency problem, would it be a
> practical short-term solution to simply bundle version 1.2.3 of the
> Test::Unit gem into RSpec?  And then require the bundled Test::Unit
> directly on its path instead of the gem and Ruby loadpaths?
>
> Sure, for stock Ruby 1.8 users this would be redundant, but they
> wouldn't really lose anything.  And everyone on 1.9 or running the
> Test::Unit gem for other purposes gains reliability and a much easier
> path to getting RSpec running the first time.  It's not an ideal
> solution but it'd be quick to set up.  Is there a reason why this
> wouldn't work or shouldn't be done?

I'll give this some thought, though I'd much rather just solve the
problem. For the 1.2.9 release I added a message. When you run specs
w/ test/unit interop (which is implicit in rspec-rails) it senses
whether t/u 1.2.3 is loaded - if not it raises an error explaining
your options.

In terms of solving the problem, there are a few paths:

1. Figure out why ruby 1.9 + rubygems + activesupport is allowing two
different versions of the same gem to be loaded.

2. Get rspec to play nice w/ test-unit-2.0.3

3. Get rspec to play nice w/ minitest.

4. Some combination of 1, 2, and 3.

This probably won't get resolved (by me) until we release rspec-2,
work on which has begun but it's waiting for me to get the book off to
print before it gets the full love and attention it needs. If anybody
out there wants to help w/ any of the above, please fork the repo, get
it to work, and if it works well I'll be glad to merge it back in.

Cheers,
David

>
>
> --
> Have Fun,
>   Steve Eley (sfeley at gmail.com)
>   ESCAPE POD - The Science Fiction Podcast Magazine
>   http://www.escapepod.org
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list