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