""no such file to load -- test_helper"

I have seen a lot of discussions about the issue where if you run a
unit test from the command line you get the error:

“no such file to load – test_helper”

I have been using the workaround of changing:

require ‘test_helper’

to:

require File.dirname(FILE) + ‘/…/test_helper’

I’m hoping there is a better way? Maybe a fix in edge rails? Anyone
have an update?

Thanks,
Tom

2009/6/18 TomRossi7 [email protected]:

to:

require File.dirname(FILE) + ‘/…/test_helper’

I’m hoping there is a better way? Â Maybe a fix in edge rails? Â Anyone
have an update?

The recommended way of avoiding this issue is to use
ruby -I test test/unit/whatever.rb

Apparently putting the dirname in the require can cause all sorts of
issues that I do not understand and we just have to put up with it. (
I don’t mean we have to put up with not understanding it).
I must admit that since I have never come across any of those issues I
just put the dirname in. My projects are personal rather than
commercial however so the fact that I may fall over this some day is
my problem only. I think if I were doing a commercial app I would
probably not put the dirname in, and put up with it.

Colin

Colin L. wrote:

require File.dirname(FILE) + ‘/…/test_helper’

I’m hoping there is a better way? Maybe a fix in edge rails? Anyone
have an update?

The recommended way of avoiding this issue is to use
ruby -I test test/unit/whatever.rb

How to get that inside your rake test script?

Apparently putting the dirname in the require can cause all sorts of
issues that I do not understand and we just have to put up with it. (
I don’t mean we have to put up with not understanding it).

require ‘…/foo’ and require ‘…/…/bar/foo’ will both load foo.rb
twice. This
is usually not what you want, but it’s a simplification in the current
require
system. Because all unit tests should run in the same VM, the ones in
different
folders will load test_helper again.

Won’t this fix it?

$:.unshift File.dirname(FILE) + ‘/…/’
require ‘test_helper’

Then the second occurrence of require ‘test_helper’ will not load twice,
even if
(on some dementedly configured system), the require
File.dirname(FILE) +
‘/…/test_helper’ could have instead loaded a different one.


Phlip

This works for me:

require File.dirname(FILE) + ‘/…/test_helper’

I just wish I didn’t have to keep editing my test files. It sounds
like there still isn’t a consensus on a workaround or a fix in the
works from the Rails Core.

Thanks,
Tom

2009/6/18 Phlip [email protected]:

How to get that inside your rake test script?

You don’t, the OP referred to the problem that if you run a unit test
from the command line you get the error. If instead of running the
unit test by

ruby test/unit/whatever.rb

you use

ruby -I test test/unit/whatever.rb

the error does not appear as the test directory is included in the ruby
path.

The problem does not appear in the first place when using rake test

Colin