2012-03-09 8 views
13

src/main/resourcessrc/test/resourcesのリソースを使用するために、EclipseでJUnitテストを取得する方法がありますか(具体的にはSpringJUnit4ClassRunnerを使用していますか?EclipseからSpring JUnitテストを実行するときにクラスパスに/ src/main/resourcesを追加する

Mavenのsurefireプラグインがこれを行いますが、Eclipseから特定の単体テストを実行していません。

src/main/resources/spring-config/にSpringの設定があり、特定の2つのファイルをオーバーライドしたいとします。これらのテスト固有のオーバーライドをsrc/test/resources/spring-config/に配置しました。また、Maven eveerythingを使用して単体テストを実行すると動作します。 EclipseからJUnitテストを実行すると、しかテストファイルが利用できず、私のコンテキストが読み込まれないことがあります。

更新

ですが、ワイルドカードを使用した場合、テストコンテキストを設定春のクラスはsrc/main/resources/からリソースを見つけることができません表示されますが、私は明示的に指定した場合それらを見つけるでしょう。

src/main/resources/

@ContextConfiguration(locations = {"classpath:/spring-config/*.xml"}) 

から物事を見つけることができませんは、これはかなりのJUnitよりも、実際に春の制限ですsrc/main/resources/

@ContextConfiguration(locations = {"classpath:/spring-config/*.xml", 
            "classpath:/spring-config/app-aws.xml"}) 
+1

「Eclipse/MavenでJUnitテストを取得して、 'src/main/resources'と' src/test/resources'のリソースを使用する方法はありますか? " (Springの部分には興味がありません)、Mavenでの操作方法については、[この回答](http://stackoverflow.com/a/17452754/983430)を参照してください。 。 –

答えて

7

から指定されたファイルを見つけるん。詳細は、http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/resources.html#resources-wildcards-in-path-other-stuffを参照してください。

解決方法は、ルート設定ではなくパッケージにSpring設定ファイルを配置することです。

+0

'classpath *:'を使うと、両方のファイルセットを使いますが、 'src/test/resources'のバージョンを優先させるのではなく、両方を評価します。これを回避する方法はありますか? –

+0

@Deejayあなたはsrc/testにあなたのものを実際に{something}のような名前でテストしたり、必要に応じて明示的に参照する必要があります。そうしないと、元のファイルやテストバージョンを参照しているかどうかは分かりません。 – eis

+0

@eisあなたの考えをありがとう。 src/test/resourcesのIMOリソースは、テストリソースとしてのさらなる識別を必要としません。さらに、ワイルドカードを使用するときに読み込まれるファイルのテスト版と非テスト版の両方で終わるので、全体構成コンテキストをエミュレートできないという複雑さが増します。 –

関連する問題