次の抽象クラスを使用して、src/test/resourcesクラスパスのspring configファイルをロードしようとしました。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {
}
Src/test/resourcesにapplicationContext.xmlファイルがありますが、Springではロードできません。
ありがとうございました。
正確には、クラスパス上にあるのは_target/test-classes
_ではなくテスト出力ディレクトリ(_src/test/resources
_)のコンテンツです。ただし、_src/test/resources
_の下のリソースは、 _resources:testResources
_ /によってテスト出力ディレクトリにコピーされます。 ゴール(デフォルトでは _process-test-resources
_ フェーズにバインドされています)。
そうは言っても、コードは見栄えがよく、テストソースコードのリソースは、テストの実行時にIDEまたはMavenによってコピーされている必要があり、クラスパスで使用できるはずです。あなたのクラスは統合テストの基本クラスであることがわかります。
*を使用して、クラスパスを検索できるようにしてください
@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
JUnit> 4.4のバージョンでspring-test依存関係(SpringJUnit4ClassRunnerを含む)を使用すると 報告されたバグ があります。
4.4より新しいバージョンのJUnitを使用している場合は、4.4に移行して問題が解決するかどうかを確認してください。
アプリケーションコンテキストをクラスパスに含めて*を配置する必要があります。
@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
Mavenを使用していて、Eclipse内からテストを実行しようとしているようです。ビルフォルダー(target/test-classes/
) にとって applicationContext.xml
。存在しない場合は、最初にビルドする必要があります。
Mavenを使用していて、Eclipseからテストケースを実行している場合は、プロジェクトを右クリックし、> Maven> maven update(ALTF5)あなたのために働くかもしれません。
私は同様の問題を抱えていると思いますが、application-context.xmlがtarget/test-classes/src/test/resourcesにないことがわかりました