2013-09-05 80 views
0

。我有一個項目,它的src/main/webapp/WEB-INF中的spring-config.xml文件和src/test/resources中的applicationContext.xml文件。我也有src/test/java我的單元測試抽象測試基類看起來類似:Spring Maven unitTest applicationContext加載錯誤文件

@ContextConfiguration(locations = {"classpath:/applicationContext.xml"}) 
public abstract class AbstractTestBase extends AbstractTransactionalJUnit4SpringContextTests { 
    //Common code and fields 
} 

我所有的單元測試,這AbstractTestBase指向延伸到環境中的src/test/resources還是應該。運行我的單元測試時,問題就出現在了spring-config.xml文件中。

我的團隊正在研究的其他項目具有相同的文件結構,相同的應用程序上下文設置,並按預期運行,但即使當我將項目中的每個文件並排放置時,我也沒有看到它們的位置文件運行,而這個沒有。

我是新來的春天,所以我不知道我應該找什麼。

是否有任何情況下,Spring或Maven不會採取應用程序上下文我交給給所有文件存在?有什麼我可能會失蹤?

編輯:更正爲反映一個文件是spring-config文件。

+0

Maven應該在'src/test/resources'中尋找資源文件。它不應該進入'src/main/webapp/WEB-INF',因爲它不是Web應用程序,甚至不知道該位置。如果從該文件夾中刪除(移動它們)會發生什麼? –

+1

你確定你的類路徑中沒有多個'applicationContext.xml'文件嗎?使用該語法將加載它找到的第一個,然後停止,並且jar命令不總是可預測的。 – chrylis

+0

@SotiriosDelimanolis這實際上看起來像一個Web應用程序,習慣上把Spring配置放在'src/main/webapp/WEB-INF'中。 – chrylis

回答

1

"classpath:/applicationContext.xml"應該看下src/test/resources。 但應該注意的是,使用該語法將加載它找到的第一個,然後停止,如'@chrylis'所述。

我曾經有類似的問題。

您必須一直使用IDE。您的項目目錄中的target/test-classes/ (in Eclipse IDE)文件中必須有applicationContext.xml文件,該文件是src/main/webapp/WEB-INF或xml文件的xml文件的副本。

+0

在'src/test/resources'下只有一個名爲'applicationContext.xml'的文件,並且有一個名字與'spring-config.xml'中的spring配置文件(名稱爲'spring-config.xml') target/test-classes /'文件夾。 1)該文件的名稱不是'applicationContext.xml' 2)如何將其更改爲加載applicationContext.xml? – sparks

+0

不確定,但我會嘗試刪除所有'test-classes /'並再次運行測試。嘗試一下。另外,如果我是你,我會重新檢查是否缺少別的東西。 – TheKojuEffect

+0

顯然垃圾測試類/裏面的一切/似乎工作。我已經能夠解決這個問題(涉及其他不相關的問題),但它還沒有成爲一個問題。 – sparks

相關問題