在Ruby中将路径设置为环境变量

时间:2015-06-23 05:07:47

标签: ruby-on-rails ruby

我正在为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。

1 个答案:

答案 0 :(得分:0)

由于rails将想法自动加载约定优于配置,因此您不必自己要求控制器类,只要您的控制器位于{ {1}}(即autoload_pathsapp/controllers[/concerns])和文件名以rails方式匹配类名。

但是,如果您必须手动要求该文件,请尝试app/models[/concerns]而不是require_relative

require

顺便说一句,您应该使用require 'test/unit' require_relative '../../app/controllers/parser' (例如Controller)为您的控制器类名称添加后缀,否则您可能会遇到路由问题。