簡體   English   中英

無法從測試中加載Spring應用程序上下文

[英]can not load Spring application context from tests

我有下一個項目結構:

src/
   main/
       java/
           DAO/Dao classes
           data/data classes
       resources/
           application-context.xml
    test/
        java/
            data/ Test files
        resources/
               application-context-test.xml

當我在測試之外加載上下文時,我使用:

ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");

它可以工作。如果使用

@ContextConfiguration(locations = {"classpath:application-context.xml"}) 

內部測試-它有效。 但是如果我用於:

@ContextConfiguration(locations = {"classpath:application-context-test.xml"}) 

我有例外:

java.lang.IllegalStateException: Failed to load ApplicationContext

有什么想法嗎? 也許XML文件有問題?

確保將主目錄和測試目錄都設置為eclipse中的源目錄。 您可以從ui中執行此操作,但也可以在應用程序源的根目錄下打開隱藏的.classpath文件。 開頭應該看起來像您在路徑匹配文件結構之前看到的內容:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src/main/java"/>
    <classpathentry kind="src" path="src/test/java"/>
    <classpathentry kind="src" path="src/main/resources"/>
    <classpathentry kind="src" path="src/test/resources"/>
    .
    .
    .
</classpath>

如果是這樣,則測試應該可以進行。 如果沒有,他們不會。

您可以通過右鍵單擊src / main / resources目錄並選擇Build Path >> Add to Build Path,從UI中執行此操作。 您的程序包瀏覽器應該看起來像這樣,每個源目錄都在頂部。 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM