异常消息:在 rails 应用程序中没有要加载的此类文件 [英] Exception message: no such file to load in rails application

查看:35
本文介绍了异常消息:在 rails 应用程序中没有要加载的此类文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Rails 应用程序中的 test 下包含了 test_helper.rb.我什至包括require 'test_helper' 在我的 test.rb 文件中的 test->unit 下.当我在 RubyMine 中为应用程序运行所有测试时,出现以下错误:

I have included test_helper.rb under test in my rails application. I have even included require 'test_helper' in my test.rb files under test->unit. When I run all the test in RubyMine for the application, I get the following error:

我拥有所有 RubyMine 3.2、ruby 1.9.2p290 和 Rails 3.1.0 的最新版本.

I have the latest versions of all RubyMine 3.2, ruby 1.9.2p290 and Rails 3.1.0.

/Users/im/.rvm/rubies/ruby-1.9.2-p290/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb
Testing started at 3:19 PM ...
Work directory: /Users/im/RubymineProjects/BackChannelApp}
Loading files.... 
=========================================
Fail to load: /Users/im/RubymineProjects/BackChannelApp/test/performance/browsing_test.rb:1
      Exception message: no such file to load -- test_helper
        /Users/im/RubymineProjects/BackChannelApp/test/performance/browsing_test.rb:1:in `require'
        /Users/im/RubymineProjects/BackChannelApp/test/performance/browsing_test.rb:1:in `<top (required)>'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `require'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `block in load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `each'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:101:in `<top (required)>'
        -e:1:in `load'
        -e:1:in `<main>'
Fail to load: /Users/im/RubymineProjects/BackChannelApp/test/unit/helpers/posts_helper_test.rb:1
      Exception message: no such file to load -- test_helper
        /Users/im/RubymineProjects/BackChannelApp/test/unit/helpers/posts_helper_test.rb:1:in `require'
        /Users/im/RubymineProjects/BackChannelApp/test/unit/helpers/posts_helper_test.rb:1:in `<top (required)>'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `require'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `block in load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `each'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:101:in `<top (required)>'
        -e:1:in `load'
        -e:1:in `<main>'
Fail to load: /Users/im/RubymineProjects/BackChannelApp/test/unit/helpers/users_helper_test.rb:1
      Exception message: no such file to load -- test_helper
        /Users/im/RubymineProjects/BackChannelApp/test/unit/helpers/users_helper_test.rb:1:in `require'
        /Users/im/RubymineProjects/BackChannelApp/test/unit/helpers/users_helper_test.rb:1:in `<top (required)>'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `require'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `block in load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `each'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:101:in `<top (required)>'
        -e:1:in `load'
        -e:1:in `<main>'
Fail to load: /Users/im/RubymineProjects/BackChannelApp/test/unit/post_test.rb:1
      Exception message: no such file to load -- test_helper
        /Users/im/RubymineProjects/BackChannelApp/test/unit/post_test.rb:4:in `require'
        /Users/im/RubymineProjects/BackChannelApp/test/unit/post_test.rb:4:in `<top (required)>'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `require'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `block in load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `each'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:101:in `<top (required)>'
        -e:1:in `load'
        -e:1:in `<main>'
Fail to load: /Users/im/RubymineProjects/BackChannelApp/test/unit/user_test.rb:1
      Exception message: no such file to load -- test_helper
        /Users/im/RubymineProjects/BackChannelApp/test/unit/user_test.rb:1:in `require'
        /Users/im/RubymineProjects/BackChannelApp/test/unit/user_test.rb:1:in `<top (required)>'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `require'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:48:in `block in load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `each'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:40:in `load_scripts_to_object_space'
        /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:101:in `<top (required)>'
        -e:1:in `load'
        -e:1:in `<main>'
Creating sqlite :memory: database
-- create_table("posts", {:force=>true})
   -> 0.0346s
-- create_table("users", {:force=>true})
   -> 0.0010s
-- initialize_schema_migrations_table()
   -> 0.0008s
-- assume_migrated_upto_version(20110926132602, ["db/migrate"])
   -> 0.0005s
1. /Users/im/RubymineProjects/BackChannelApp/test/test_helper.rb:1

1 files were loaded.
=========================================
Searching test suites...
=========================================
DEPRECATION WARNING: ActiveSupport::JSON::CircularReferenceError is deprecated! Use ActiveSupport::JSON::Encoding::CircularReferenceError instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
DEPRECATION WARNING: ActiveSupport::JSON::CircularReferenceError is deprecated! Use ActiveSupport::JSON::Encoding::CircularReferenceError instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
DEPRECATION WARNING: Fixtures is deprecated! Use ActiveRecord::Fixtures instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
DEPRECATION WARNING: Fixtures is deprecated! Use ActiveRecord::Fixtures instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
DEPRECATION WARNING: Fixture is deprecated! Use ActiveRecord::Fixture instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
DEPRECATION WARNING: Fixture is deprecated! Use ActiveRecord::Fixture instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
Test suite #1: ActionDispatch::IntegrationTest

Ignored because it is default rails empty test suite
=========================================
Test suite #1: ActiveSupport::TestCase

Ignored because it is default rails empty test suite
=========================================
Test suite #1: ActionController::TestCase

Ignored because it is default rails empty test suite
DEPRECATION WARNING: ActiveSupport::SecureRandom is deprecated! Use SecureRandom instead. (called from is_test_case_class? at /Applications/RubyMine 3.2.4.app/rb/testing/runner/tunit_in_folder_runner.rb:80)
=========================================
Test suite #1: ActiveRecord::TestCase

Ignored because it is default rails empty test suite
=========================================
0 test suites, 0 tests, 0 assertions, 0 failures, 0 errors


Process finished with exit code 0

我错过了什么?谢谢!

推荐答案

test_helper.rb 位于 test 目录中.您正在从根目录运行测试,这意味着文件的路径是错误的.尝试从测试目录运行测试.

test_helper.rb is located within the test directory. You are running the tests from the root directory, which means the path to the file is wrong. Try running your tests from the test directory.

如果您想从根目录运行测试,您必须将其更改为 require File.join(File.dirname(__FILE__), '..', 'test_helper.rb'),其中 FILE 是包含此行(您的测试用例)的文件的路径,其余的是 test_helper.rb 相对于该文件的路径.这样,您从哪里运行测试就无关紧要了.

If you want to run your tests from the root directory, you would have to change this to require File.join(File.dirname(__FILE__), '..', 'test_helper.rb'), where FILE is the path to the file that contains this line (your test case), and the rest is the path of test_helper.rb, relative to that file. This way, where you run the test from is irrelevant.

这篇关于异常消息:在 rails 应用程序中没有要加载的此类文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆