ダフィーモが示唆したように、Spring TestContext Framework (TCF) は、文字列の場所がデフォルトでクラスパスにあると想定しています。詳細については、ContextConfigurationの JavaDoc を参照してください。
ただし、Spring のリソース抽象化を使用して (つまり、「file:」プレフィックスを使用して) 絶対パスまたは相対パスでファイル システム内のリソースを指定することもできることに注意してください。詳細については、Spring のmodifyLocations()メソッドの JavaDoc を参照してくださいAbstractContextLoader
。
たとえば、XML 構成ファイルが"src/main/webapp/WEB-INF/spring-config.xml"
プロジェクト フォルダーにある場合は、次のように相対ファイル システム パスとして場所を指定できます。
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring-config.xml")
別の方法として、Spring 構成ファイルをクラスパス (例: src/main/resources
) に保存し、Spring MVC 構成のクラスパスを介してそれらを参照することもできます。たとえば、次のようになります。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
このアプローチでは、テスト構成は次のようになります (リソースがクラスパスのルートにあることを示す先頭のスラッシュに注意してください)。
@ContextConfiguration("/spring-config.xml")
また、リファレンス マニュアルの「XML リソースを使用したコンテキスト構成」セクションが役立つ場合もあります。
よろしく、
サム
(Spring TestContext フレームワークの作成者)