2

私は持っている宝石を作成しています

  • binディレクトリ内のいくつかのスクリプト
  • libディレクトリのユーティリティクラス
  • テストディレクトリ内のいくつかのテスト
スーパーツール
 置き場
   toolA
   toolB
 lib
   スーパーツール
     supertool.rb
     helper.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

hoe gem を見てください。これは他の gem のヘルパーです。

于 2008-10-18T09:29:01.247 に答える