2013-05-20 35 views
4

我在運行intelliJ中的單元測試時遇到問題。我曾瀏覽過其他論壇,在那裏人們也遇到過類似的問題,但到目前爲止,我仍然無法使其發揮作用。這是錯誤:IntelliJ Cant查找測試環境

java.lang.IllegalStateException: Failed to load ApplicationContext 
... 
Caused by: java.io.FileNotFoundException: class path resource [com/d1/d2/service/ServiceTest-context.xml] cannot be opened because it does not exist 

在我的測試,我有:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = "ServiceTest-context.xml") 
public class ServiceImplTest .... 

我已經明顯證實該文件存在在那裏它在造成線尋找它。我還讀了一個建議來檢查輸出目錄,並且我已經驗證它存在那裏。還有什麼突出的東西給你?我可以使用ant從命令行運行測試,但我希望能夠運行單個類而不是模塊。

項目:

IntelliJ_project 
    src 
    test 
     com 
      d1 
       d2 
        otherStuff 
        ... 
        ... 
        service 
         ServiceImplTest.java 
         ServiceTest-context.xml 

outputFolder:

test-classes (output folder) 
    com 
     d1 
      d2 
       service 
        ServiceImplTest.class 

因此,原來我一直在尋找在錯誤的目錄爲輸出。上下文文件不會將其輸出到輸出位置。我如何得到它?

+0

您的項目的結構是什麼?從項目根目錄添加具有Test類源文件樹和ServiceTest-context.xml文件。 –

+0

這是一個Maven項目嗎? IntelliJ Idea爲本地Idea項目使用'out'目錄(並自己複製資源),名稱'test-classes'是Maven項目使用的傳統名稱。 –

+0

是的,它是一個maven項目。根據我的同事們的說法,在月蝕下它可以正常工作。 –

回答

4

嘗試這種解決方案,它爲我工作:

  1. ServiceTest-context.xmlsrc/test/resources文件夾。

  2. 這些行添加到您的POM的build部分:

    <testResources> 
        <testResource> 
        <directory>src/test/resources</directory> 
        </testResource> 
    </testResources> 
    
  3. 重新導入Maven項目和運行各個測試。

5

如果這是一個多模塊項目,並在與

mvn test 

運行,但配置文件不能被IDEA找到你的測試做的工作,試試這個:

  1. 菜單:運行 - >編輯配置...
  2. 將「工作目錄」更改爲指向「Intellij_Project」文件夾(帶有斜線)。
  3. 在測試類,改變你的配置是:

    @ContextConfiguration("file:test/com/d1/d2/service/ServiceTest-context.xml") 
    

此配置爲我工作(和也被彈簧MVC-展示)。

0

具有相同的問題。 IntelliJ似乎有一個錯誤,它不會將所有文件複製到目標目錄。因此,您的上下文未找到。有同樣的問題。

如果您檢查您的目標/測試類文件夾,您可能會注意到上下文不在所需的位置。至少這就是我所擁有的。

我過去遇到過很多麻煩(除了手動拷貝)。如果幸運的話,請嘗試取消標記測試資源並將其標記爲測試資源。然後做一個mvn乾淨。然後運行你的測試。另外,確保在你的測試用例配置中,它會觸發一個Make ...在測試類中獲得我的上下文。同時驗證您的測試類的工作目錄是否正確。我有一個案例,它被設置爲我保存項目文件的目錄....