我正在为Ruby on Rails应用程序开发一个测试套件。我正在使用“test_parser.rb
”测试来测试名为“parser.rb”的控制器。 “parser.rb
”保存在app/controllers
文件夹中,而“test_parser.rb”保存在test/controllers
中。现在,要使用“parser.rb
”文件,我包含以下代码:
require "test/unit"
$LOAD_PATH.unshift File.expand_path '../../../app/controllers',__FILE__
require "parser"
我宁愿不必在每个测试文件中设置加载路径。我尝试了各种谷歌搜索全局添加加载路径,但结果集中在通过命令行添加路径,或者他们谈论导出环境变量而没有真正解释这意味着什么。导出环境变量到底意味着什么?在这种情况下,这甚至有意义吗?理想情况下,我想将此作为测试配置的一部分 - 我需要对哪些文件进行哪些更改(即test_helper,environment / test /,config / environment等)?
我在Windows 8上,但是我通过Cygwin运行Ruby和Rails。
答案 0 :(得分:0)
由于rails将想法自动加载和约定优于配置,因此您不必自己要求控制器类,只要您的控制器位于{ {1}}(即autoload_paths
和app/controllers[/concerns]
)和文件名以rails方式匹配类名。
但是,如果您必须手动要求该文件,请尝试app/models[/concerns]
而不是require_relative
:
require
顺便说一句,您应该使用require 'test/unit'
require_relative '../../app/controllers/parser'
(例如Controller
)为您的控制器类名称添加后缀,否则您可能会遇到路由问题。