题
我正在创建一个宝石,其中有
- bin目录下的几个脚本
- lib 目录中的实用程序类
- 以及测试目录中的几个测试
supertool bin toolA toolB lib supertool supertool.rb helper.rb test tc_main.rb tc_etc.rb
现在,为了在安装 gem 之前运行测试,我在测试顶部添加了以下代码片段:
base = File.basename(Dir.pwd)
if base == 'test' || base =~ /supertool/
Dir.chdir('..') if base == 'test'
$LOAD_PATH.unshift(Dir.pwd + '/lib')
Dir.chdir('test') if base =~ /supertool/
end
但这似乎很乏味,特别是如果我也必须将它们放入 bin 目录的脚本中。有没有更好的方法来设置环境,以便我们可以在安装 gem 之前对其进行测试?我确信这很简单,我就是找不到。一个指向正确位置的简单链接会有很大帮助:)
解决方案
我不确定您想通过该脚本实现什么目标。好像和宝石没什么关系
是不是可以让你跑 ruby tc_main.rb
从测试目录中(或 ruby test/tc_main.rb
从基本目录),并正确设置加载路径?如果是这样,这是一个更好的方法:
在您的测试目录中,创建一个 test_helper.rb
文件。在该文件中,将其放入
$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
在所有测试文件中,将第一行设置为
require 'test_helper'
如果您的测试目录中有子目录,那么这些子目录中的文件就可以
require '../test_helper'
其他提示
看看锄头宝石,它是其他宝石的帮手。
不隶属于 StackOverflow