2012-05-27 283 views
0

我想弄清楚如何設置一個項目使用螞蟻。出於某種原因,我無法運行junit測試。我用螞蟻建立了一個簡單的虛擬項目,試圖弄清楚這一點。它所擁有的只是一個單一的單元測試,應該通過微不足道。爲什麼不能正確運行我的單元測試?

我的項目結構看起來像這樣。

. 
|-- build.xml 
|-- src 
`-- test 
    |-- foo 
    | `-- MainTest.java 
    `-- junit-4.10.jar 

MainTest.java看起來像這樣。

package foo; 

import org.junit.*; 
import static org.junit.Assert.*; 

public class MainTest { 
    @Test 
    public void passes() { 
     System.out.println("It works!"); 
    } 
} 

這裏是build.xml。

<project name="Nes" default="build" basedir="."> 
    <target name="build-test"> 
     <javac srcdir="test"> 
      <classpath> 
       <pathelement location="test/junit-4.10.jar" /> 
      </classpath> 
     </javac> 
    </target> 

    <target name="test" depends="build-test"> 
     <junit> 
      <classpath> 
       <pathelement location="test/junit-4.10.jar" /> 
      </classpath> 
      <batchtest> 
       <fileset dir="test" includes="foo/MainTest.class" /> 
      </batchtest> 
     </junit> 
    </target> 
</project> 

這是我從運行ant test得到的輸出。

Buildfile: /home/hayden/dev/nes/build.xml 

build-test: 
    [javac] /home/hayden/dev/nes/build.xml:4: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 

test: 
    [junit] Test foo.MainTest FAILED 

BUILD SUCCESSFUL 
Total time: 0 seconds 

我運行螞蟻1.8.2和Java 6

我在做什麼錯?

+0

雖然這是有幫助的,你貼了GitHub的鏈接,甚至更好的將是包括所有相關的代碼/信息你的問題在這裏堆棧溢出,因爲然後這個網站上的問題和答案成爲獨立的,然後他們不依賴於外部信息來源,可能會或可能不會down/available/disappear /等。 –

+0

夠公平的。已完成更改。 – haydenmuhl

回答

0

您需要爲實際的.class文件添加一個路徑,以便JUnit可以真正運行測試。既然你是完全合格的測試類的名稱,則需要包括包含該foo包的目錄:

<target name="test" depends="build-test"> 
    <junit> 
     <classpath> 
      <pathelement location="test/junit-4.10.jar" /> 
      <pathelement location="test" /> 
     </classpath> 

但我建議你改變javac任務不輸出構建工件(即.class文件)與源文件放在同一個目錄中。創建一個頂級「構建」目錄並將所有構建輸出放在那裏。

你也應該通過增加includeantruntime屬性來javac任務安靜的第一個警告:

<javac srcdir="test" includeantruntime="false"> 
+0

我瞭解我違反的最佳做法。我只是試圖讓測試運行。我不知道我需要將編譯的測試類包含在類路徑中,因爲我在'batchtest'元素中指定了一個到'MainTest.class'的路徑。 – haydenmuhl

相關問題