ruby-on-rails - 异常消息 : no such file to load in rails application

标签 ruby-on-rails unit-testing testing rubymine

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

我有所有 RubyMine 3.2、ruby 1.9.2p290 和 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 位于测试目录中。您正在从根目录运行测试,这意味着文件的路径是错误的。尝试从测试目录运行测试。

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

关于ruby-on-rails - 异常消息 : no such file to load in rails application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7575057/

相关文章:

visual-c++ - 如何在 VC++ 中的另一个测试项目中使用来自一个测试项目的类?

mysql - 用于编辑集合的 Rails 表单

css - Rails 应用程序中的 Heroku/Zurb Foundation Sass 语法错误

ruby-on-rails - 无法加载这样的文件 -- mysql2/mysql2

python - 如何使用 Unittest 套件传递变量

c# - 为单元测试创​​建 HttpPostedFileBase 实例

unit-testing - 如何模拟已声明的私有(private)字段?

jquery - Rails acts_as_votable ajax 不工作

c# - ServiceStack:单元测试 WebServices

testing - 有没有直接的方法来测试加密 session (SSL) Cookie 中的安全属性