2013-03-22 225 views
0

我有基本結構src /(main | test)/(java | resources)/ java的java項目/ ...我使用servlet 2.5和xml配置的spring。我BaseDaoTest類看起來是這樣的:JUnit彈簧資源覆蓋

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations={ 
     "classpath:spring/datasource-context.xml", 
     ..., 
}) 
@TransactionConfiguration 
@Transactional 
public abstract class BaseDaoTest extends AbstractTransactionalJUnit4SpringContextTests { } 

所以在我的src/main /資源/春/是文件數據源-context.xml中。爲了測試,我使用內存數據庫,因此我在src/test/resources/spring中也得到了datasource-context.xml。

大約3/4年一切都工作正常。測試上下文從src/test加載並從src/main中休息。每當我在Eclipse中運行所有測試(rclick project - > run as - > junit ...)時,從昨天開始(我不知道我改變了什麼或者改變了什麼),每個測試用例都失敗了。我想通過src/main/...加載資源,而不是src/test/...

有人知道發生了什麼嗎?我可以通過重命名特定於測試的資源來實現它,但我很好奇爲什麼加載器(?)將優先級加載到主要的測試中。如果我運行單個測試類,它的工作就很好。

回答

0

我的同事告訴我做一些史詩般的清潔。 Eclipse菜單欄:Project - > Clean; mvn eclipse:乾淨; F5; Maven Force更新;生成源和不是;等等...現在一切正常,就像它一樣。我認爲我以前從未使用過的最重要的部分是mvn eclipse:clean。

1

我懷疑你的運行配置設置可能已經改變。分析軟件包上的運行配置設置,然後右鍵單擊軟件包並選擇屬性。然後選擇左側「運行/調試」設置中列出的運行配置。你要密切關注課堂路徑。也許類路徑的順序已經改變,或者目錄已經被添加或從類路徑中移除。

+0

你可能是對的,但我沒有設法弄清楚什麼是錯誤的,但我有能力以另一種方式解決這個問題。 – svobol13 2013-03-22 19:39:59