代码之家  ›  专栏  ›  技术社区  ›  moogs

部署前Ruby Gem测试

  •  2
  • moogs  · 技术社区  · 16 年前

    我正在创造一块宝石

    • 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目录中。有没有更好的设置环境的方法,以便我们可以在安装之前测试gems?我肯定这是我找不到的简单的东西。一个简单的链接到正确的地方会有很大帮助:)

    2 回复  |  直到 16 年前
        1
  •  4
  •   Orion Edwards    16 年前

    我不知道你想用这个剧本达到什么目的。它似乎与宝石没有任何关系…

    你能跑吗 ruby tc_main.rb 从测试目录(或 ruby test/tc_main.rb 从base dir),它是否适当地设置了加载路径?如果是这样,这里有一个更好的方法:

    在测试目录中,创建 test_helper.rb 文件。把这个放在那个文件里

    $LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
    

    在所有测试文件中,将第一行设置为

    require 'test_helper'
    

    如果测试目录中有子目录,那么这些子目录中的文件就可以

    require '../test_helper' 
    
        2
  •  0
  •   Vitalie    16 年前

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