Generated test files and bad require 'test_helper'

Why do the generated test files have: require 'test_helper'

It cannot obviously find the file because it's located in a
subdirectory. That's annoying.

It finds it ok for me when run from rake test but not from ruby test/unit/test.rb
I change all the require lines to

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

I suspect there is a better way of achieving this effect

Colin

Colin Law wrote:

It finds it ok for me when run from rake test but not from ruby
test/unit/test.rb
I change all the require lines to

require File.dirname(__FILE__) + '/../test_helper'

I suspect there is a better way of achieving this effect

Thanks Colin for your input. Actually it works the same for me (I never
noticed), but I often find myself only running a little set of tests and
not always the full rake test.

Fernando Perez wrote:

Colin Law wrote:

require File.dirname(__FILE__) + '/../test_helper'

I suspect there is a better way of achieving this effect

Thanks Colin for your input. Actually it works the same for me (I never noticed), but I often find myself only running a little set of tests and not always the full rake test.

Some editors run tests in the "wrong" folder - if they can run unit tests at all - so that File.dirname mishmash is crucial for Rails's tests. No idea why the newer version took it out!

Fernando Perez wrote:
> Colin Law wrote:
>> require File.dirname(__FILE__) + '/../test_helper'

>> I suspect there is a better way of achieving this effect
> Thanks Colin for your input. Actually it works the same for me (I never
> noticed), but I often find myself only running a little set of tests and
> not always the full rake test.

Some editors run tests in the "wrong" folder - if they can run unit tests at all
- so that File.dirname mishmash is crucial for Rails's tests. No idea why the
newer version took it out!

Take a look at the comments for http://github.com/rails/rails/commit/e8170805df1a32119db9d328daee1239b338ac71

Fred

Frederick Cheung wrote:

Some editors run tests in the "wrong" folder - if they can run unit tests at all
- so that File.dirname mishmash is crucial for Rails's tests. No idea why the
newer version took it out!

Take a look at the comments for http://github.com/rails/rails/commit/e8170805df1a32119db9d328daee1239b338ac71

"different relative requires of the same file cause Ruby to load it multiple times. This causes bugs. Fixing it is the point of this change."

Then use File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb').

expand_path - if I spelled it right - goes to the OS filesystem for the uniquely correct path, right?

"different relative requires of the same file cause Ruby to load it multiple times. This causes bugs. Fixing it is the point of this change."

Then use File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb').

expand_path - if I spelled it right - goes to the OS filesystem for the uniquely correct path, right?

"File.expand_path doesn’t behave on Windows". It always comes back to that, huh? (-: