2009-07-16 98 views
3

我遇到了將junit與工作的ant build.xml文件集成的問題。我的測試類與我的源類位於同一個目錄中。在我學習如何使用ant時,我只想編譯所有源代碼和測試類。編譯與螞蟻的junit測試類的問題

我使用eclipse,junit測試類在通過eclipse執行時工作正常。這意味着類路徑使用junit.jar和ant-junit-1.7.0.jar正確設置(至少從eclipse的角度來看),儘管我不確定後面的jar是否是絕對必要的。

我的文件夾結構是:

的src /代碼/ MyClass.java 的src /代碼/ MyClassTest.java

和Ant文件只包含一個目標,只是爲了編譯MyClass的和MyClassTest,我做不包括在目前任何的junit任務,並且不介意在同一目錄下生成文件,以及:

<target name="compile" > 
    <javac srcdir="src/" /> 
</target> 

螞蟻工作得很好,直到我在我的文件夾中添加MyClassTest.java(Junit的與註釋)。輸出是:

[javac] C:\....\src\MyClassTest.java:3: package org.junit does not exist 
cannot find symbol 

我的想法是,某種程度上Ant不能找到junit庫。由於我沒有指定類路徑,因此我假設Ant會查找與源文件相同的位置以查找它需要的內容......如何告訴Ant,junit jar是否正確?

任何想法,真的很感激。 Regards

+0

您不必使用絕對路徑,如您在您的評論一樣。它可以是相對的,但它與ant的執行位置(或項目元素上的basedir屬性)有關。並且不要以正斜槓開始路徑,否則它會查看根目錄並將其視爲絕對路徑。 – Yishai 2009-07-16 02:50:27

回答

5

瓶必須按名稱來指定,而不是目錄。使用:

<javac srcdir="src/" classpath="pathtojar/junit.jar"/> 

其中「pathtojar」是包含junit jar的路徑。

+0

感謝Marco和Duffy。即使根據eclipse包資源管理器視圖中的junit.jar在根項目名稱下引用,我不得不直接通過其絕對位置指向jar。我的意思是classpath =「/ junit.jar」只是沒有工作, 我不得不說classpath =「C:\ Users \ Desktop \ Work \ Eclipse \ plugins \ org.junit4_4.3.1 \ junit.jar」 再次感謝! – denchr 2009-07-16 01:20:39

6

是的,你必須指定一個CLASSPATH。

自從我上次使用Eclipse以來已經很長時間了,但我相信您必須右鍵單擊項目根目錄,選擇「Properties」,然後將JUnit JAR添加到CLASSPATH。

Ant在使用它構建時必須知道CLASSPATH。看看他們的<路徑>的東西。

這裏是我如何做到這一點:

<path id="production.class.path"> 
     <pathelement location="${production.classes}"/> 
     <pathelement location="${production.resources}"/> 
     <fileset dir="${production.lib}"> 
      <include name="**/*.jar"/> 
      <exclude name="**/junit*.jar"/> 
      <exclude name="**/*test*.jar"/> 
     </fileset> 
    </path> 

    <path id="test.class.path"> 
     <path refid="production.class.path"/> 
     <pathelement location="${test.classes}"/> 
     <pathelement location="${test.resources}"/> 
     <fileset dir="${test.lib}"> 
      <include name="**/junit*.jar"/> 
      <include name="**/*test*.jar"/> 
     </fileset> 
    </path> 
1

其實我沒有任何運氣,直到我使用每個Apache網站的fetch.xml來拉動jar依賴。那對我來說工作得很好。這是我做的:

  1. 在命令行我去了ant主目錄。
  2. 我輸入「ant -f fetch.xml -Ddest = system」(在Jail的lib目錄中存儲jar)
  3. 它不會運行,因爲它希望我有maven-artifact-ant-2.0.4-dep。jar在ant/lib文件夾中。
  4. 我做了一個谷歌搜索這個罐子,發現它在jarfinder.com。
  5. 我下載了它,並把它放在螞蟻庫文件夾,因爲這是它一直在尋找這個文件。 然後它將所有需要的文件都拉出來,然後我就被設置好了。
  6. 然後在命令行中,我回到我的工作區文件夾並重置到build.xml 螞蟻-buildfile build.xml文件
  7. 我當時也螞蟻乾淨,螞蟻編譯(建立成功)和螞蟻運行,所有的工作 - 建立成功。

JUnit是建立在與Eclipse但ANT我嘗試了幾種解決方案,從Apache和螞蟻的文檔,但是這是對我工作。 (我在Windows 7) -Erik