web-dev-qa-db-ja.com

spring-@ContextConfigurationはsrc / test / resourcesの設定ファイルの読み込みに失敗します

次の抽象クラスを使用して、src/test/resourcesクラスパスのspring configファイルをロードしようとしました。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {

}

Src/test/resourcesにapplicationContext.xmlファイルがありますが、Springではロードできません。

ありがとうございました。

25
robinmag

正確には、クラスパス上にあるのは_target/test-classes_ではなくテスト出力ディレクトリ(_src/test/resources_)のコンテンツです。ただし、_src/test/resources_の下のリソースは、 _resources:testResources_ /によってテスト出力ディレクトリにコピーされます。 ゴール(デフォルトでは _process-test-resources_ フェーズにバインドされています)。

そうは言っても、コードは見栄えがよく、テストソースコードのリソースは、テストの実行時にIDEまたはMavenによってコピーされている必要があり、クラスパスで使用できるはずです。あなたのクラスは統合テストの基本クラスであることがわかります。

26
Pascal Thivent

*を使用して、クラスパスを検索できるようにしてください

@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
16
prashant thakre

JUnit> 4.4のバージョンでspring-test依存関係(SpringJUnit4ClassRunnerを含む)を使用すると 報告されたバグ があります。

4.4より新しいバージョンのJUnitを使用している場合は、4.4に移行して問題が解決するかどうかを確認してください。

6
Jesse Webb

アプリケーションコンテキストをクラスパスに含めて*を配置する必要があります。

@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
4
borchvm

Mavenを使用していて、Eclipse内からテストを実行しようとしているようです。ビルフォルダー(target/test-classes/) にとって applicationContext.xml。存在しない場合は、最初にビルドする必要があります。

1
Bozho

Mavenを使用していて、Eclipseからテストケースを実行している場合は、プロジェクトを右クリックし、> Maven> maven update(ALTF5)あなたのために働くかもしれません。

0
Rupali

私は同様の問題を抱えていると思いますが、application-context.xmlがtarget/test-classes/src/test/resourcesにないことがわかりました

0
benzen