【问题标题】:Rake test fails with LoadError, looking in home directoryRake 测试因 LoadError 失败,查看主目录
【发布时间】:2012-01-28 13:50:20
【问题描述】:

当我尝试在我新生成的 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​​ 版本(lion 附带 1.8.7,我用于应用程序的 1.9.3 已使用 rvm 安装)。

如果我运行“rails s”,应用程序就会工作。

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

【问题讨论】:

  • 只是为了确定,你在哪里执行rake test:unites?从您上面发布的内容来看,它看起来像/User/user?
  • 我在 /Users/user/Workspace/heroku 目录下执行了命令,该目录是 rails 应用程序的顶层目录
  • 我怀疑 Rakefile 有问题。
  • 嗯,除了 require rake:dsl 行之外,新的工作应用程序的 Rakefile 和上面没有的应用程序之间没有区别。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2020-12-10
    • 1970-01-01
    相关资源
    最近更新 更多