2014-10-30 94 views
1

我遇到了一個問題,即要讓IntelliJ成功找到名爲[公司前綴] .util.db的特定測試包。我試圖在另一個模塊的單元測試中從這個包中導入一個類。該軟件包位於測試源文件夾下,但在常規源文件夾下沒有並行(此模塊的測試和常規軟件包結構都包含[公司前綴] .util軟件包,但有[公司前綴] .util.db軟件包只在測試包中)。單元測試通過ant運行得很好,但由於某種原因,IntelliJ拒絕將導入視爲有效。IntelliJ找不到測試包

錯誤似乎表明導入的[公司前綴] .util部分有效,但無法找到db子包。我如何幫助IntelliJ查看我需要的課程?

+0

您使用的是maven嗎? – 2014-10-30 20:16:36

+0

我不是,我正在使用螞蟻 – GentlemanJim 2014-10-31 08:18:13

回答

1

當您聲明庫的依賴關係時,即使使用測試作用域依賴關係,類路徑中也只包含生產類,因爲測試代碼不會被添加到生產jar中。

要依賴測試文件夾中的資源(類,無論),必須將要打包的類放入可以依賴測試範圍的庫中。要做到這一點我們使用maven的jar插件生成測試-JAR(在我們的例子中,我們只對共享一個類感興趣,但你可以發揮與包括列表,以適應自己):

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>test-jar</goal> 
      </goals> 
      <configuration> 
       <includes> 
        <include>org/company/web/ValidatorTestUtils.class</include> 
       </includes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

隨後的依賴同時攜帶試驗範圍和類型:

<dependency> 
    <groupId>org.company.app</groupId> 
    <artifactId>core-web</artifactId> 
    <type>test-jar</type> 
    <scope>test</scope> 
</dependency> 

這使得從提供給相關模塊的測試核心的Web模塊的測試類。

+0

唉,我擔心這可能是這種情況,但我不想僅僅假設侷限性,因爲IntelliJ讓我對之前的隱藏功能感到驚訝。我正在使用螞蟻,但我想我只能盡我所能地找到解決辦法。謝謝 – GentlemanJim 2014-10-31 08:23:35