使用LoadError进行Rake测试失败,查看主目录

时间:2011-12-27 14:50:15

标签: ruby-on-rails osx-lion rake-test

当我尝试在新生成的rails应用程序上运行“rake test”时,我收到以下错误

Computer:heroku user$ rake test:units
/Users/user
file doesnt exist
/Users/user/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require': cannot load such file -- /Users/user/test/unit/helpers/things_helper_test.rb (LoadError)
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `block in require'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:10:in `block (2 levels) in <main>'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9:in `each'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9:in `block in <main>'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `select'
    from /Users/user/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `<main>'
rake aborted!
Command failed with status (1): [/Users/user/.rvm/rubies/ruby-1.9.3-p0/b...]

Tasks: TOP => test:units
(See full trace by running task with --trace)

我猜测这与我的设置有关,因为好像rake正在我的主目录而不是rails应用程序目录中查找生成的文件。你能帮我找到我做错的事吗?

我使用的是Mac OS X Lion,有两个已安装的ruby版本(1.8.7带有lion,我使用rvm安装了我用于应用程序的1.9.3)。

如果我运行“rails s”,应用程序就可以运行。

更新:如果我从头开始创建一个新的rails应用程序,只添加生成的脚手架,则rake test命令有效。因此,它可能是一个不兼容的问题,因为失败的rails应用程序是在另一台计算机上创建的,上传到heroku然后从那里克隆到新计算机。

1 个答案:

答案 0 :(得分:0)

有趣的故事。我不小心把一些测试代码放在其中一个文件中,其中包含:

Dir.chdir("../..")

我猜测当我运行rake test时,文件被执行以加载文件中包含的类,并在查找下一个文件时导致问题,当前目录突然改变。