2009-06-19 2 views
3

私はいくつかのモジュールを追加して/ libディレクトリに落としました。私は、libディレクトリが魔法のようにRailsによってロードされていると思います(プロジェクトの早い段階でlibディレクトリをロードして忘れていない限り)。しかし、追加のモジュールが必要なユニットテストを実行すると、ロードされません。RailsでTest :: Unitテストを実行するときにlibファイルをロードしますか?

テストを実行するときのlibディレクトリが自動的にロードされ、またはテストのためにそうするエレガントな方法はありますでしょうか? rakeスクリプト+ Test :: Unitが私のRails環境を正確にロードしてくれることを期待していましたが、そうではありません。私はtest_helper.rbにこのような何かを追加することが残っている:

require File.expand_path(File.dirname(__FILE__) + "/../lib/foo") 

私のような標準すくいスクリプトで私のテストを実行している:あなたのlibディレクトリが自動的によってロードされていない

rake test 
rake test:units 
rake test:functionals 

答えて

4

レール。読み込みは、const_missingをオーバーライドするActiveSupport :: Dependenciesを通じて行われます。最初に定数を使用する場合、定数が定義されていないと、Railsはlibディレクトリ(およびロードパスの他の場所)で見つけようとします。これを達成するために、SomeClassと呼ばれるものがsome_class.rbにあると予想される名前付けスキームを使用します。テストモードのRailsも同じメカニズムを使用します。 config/environments/test.rbとconfig/environments/development.rbを調べて、あなたが必要とする面白いことをしているかどうか確認してください。要するに、命名計画を確認してください。

+0

あなたは正しいです - 私はあなたが言ったように私の代わりに、一定の相対パスで必要としていたが判明したので、私は持っていた: はちょうど の代わりに「LIB/REXML」を必要とします。 は「REXMLが必要です' 私のテストでは、text_helperに明示的にロードする必要はありません。 –

関連する問題