2

我正在创建一个具有

  • bin目录下的几个脚本
  • lib 目录中的实用程序类
  • 和测试目录中的几个测试
超级工具
 斌
   工具A
   工具B
 库
   超级工具
     超级工具.rb
     助手.rb
 测试
   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 之前对其进行测试?我敢肯定这是我找不到的简单的东西。一个指向正确位置的简单链接会有很大帮助:)

4

2 回答 2

4

我不确定你想用那个脚本实现什么。好像和宝石没什么关系……

是否可以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' 
于 2008-11-03T20:14:05.703 回答
0

看看锄头宝石,它是其他宝石的帮手。

于 2008-10-18T09:29:01.247 回答