2012-01-11 2 views
0

日食。日食春のプロジェクトで、例えば以下のように私は、プロジェクトの構造を持っている:春のクラスパスパスユニット・テストは、私が読んでいる

project1 
    src 
    main 
     resources 
       maincontext.xml 
    test  
     resources 
       testcontext.xml 
     java 
      uk 
      co 
       project1 
         Unittest.java 

はその後、私のテストファイルに私が持っている:私は右クリックすると

@ContextConfiguration(locations={"classpath:testcontext.xml", "classpath:<path of maincontext>"}) 

パブリッククラスBlacklistTestはAbstractTransactionalJUnit4SpringContextTests {

を拡張します私のテストファイルでJUnitテストとしてデバッグを選択すると、testcontext.xmlが正常に見つかります。これは私のクラスパスのルートが "project1/src/test/resources"だと私に思い出させます。私はこれが日食で決まるのは分かりません。さらにこれをやったら、maincontext.xmlを私のルートよりも上に置くとどのようにしたらいいですか?最後に、別のプロジェクト 'project 2'を追加して、そこからスプリングコンテキストファイルを追加したいのであれば、それをunittest.javaファイルでどのように参照するのですか?

答えて

1

クラスパスの「ルート」は、文字通り""です(空の文字列で、ファイルシステム上では"/"のように見なされます)。

Mavenを使用しているようです。これは、/src/main/java,/src/main/resourcesなどがビルド処理中にマージされることを意味します。つまり、Eclipseはそれぞれをソースディレクトリとして使用します。階層はtestに従います。

あなたはではありませんあなたのルートIMOがクラスパスリソースの「上に」あるものを含めることができます。そうでない場合は、明示的に名前をつけ、接頭辞は"classpath:"のままにしておく必要があります。これはクラスパスにはないため、完全修飾パスを指定する必要があります(または、環境に必要な完全修飾パス-app filenameは、"/WEB-INF/foo-context.xml"のようなWebコンテキストルートに基づいています。

関連する問題