2011-02-10 8 views
2

私はgitのサブモジュールを介して同じモデル(公開ウェブサイトと管理サイト)を共有する2つのレールプロジェクトを持っています。私の私は、次の行を追加したapplication.rbファイルでRspec2でモデルと仕様を別のパスでサポートするにはどうすればよいですか?

config.autoload_paths += ["shared/models", "shared/lib"]を、とRailsアプリケーションを実行しながら、これは正常に動作し、私はスペックを実行しようとすると、しかし、最初のroutes.rbファイルをロードするようで、その後、application.rbファイル - どのスペックが間違っていることを意味します。

さらに、Rspecは共有/スペックパスのスペックを取得しません。スペックタスクにこのパスを追加する方法はありますか?自分のrspec.rakeファイルをセットアップしてタスクを複製する必要がありますかそんな感じ?共有/モデルをロードするために

乾杯

答えて

3

、あなたはconfig.autoload_pathsにそれを追加する必要があります。

次に、共有/仕様から、あなたのスペックをロードspec_helper.rbにこれを追加する:


shared_model_specs = config.filename_pattern.split(",").collect do |pattern| 
    Dir["shared/spec/models/#{pattern.strip}"] 
end.flatten 
config.files_to_run.concat shared_model_specs 

興味を持って他の人たちのためだけサイドノート、あなたのスペックファイルは、通常のスペックフォルダではなく、下にある場合


config.include RSpec::Rails::ModelExampleGroup, :type => :model, :example_group => { 
    :file_path => config.escaped_path(%w[spec shared models]) 
} 

がPS:私は2つのプロジェクトでそれらを使用し、その後、宝石に共有コードまたはモジュールを置くことをお勧めサブフォルダをカスタマイズし、あなたはこのようにそれをロードすることができます。この方法では、宝石には独自のテストが含まれており、複数のプロジェクトから参照することはずっと簡単で整理されています。

関連する問題