2010-08-16 148 views
1

我在/ build目錄中有一個簡單的測試用例,我試圖用Ant進行編譯和運行。彙編很好,但我無法弄清楚如何運行它。類是:作爲Ant目標運行JUnit測試

package money; 

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

public class MoneyTest { 

    @Test 
    public void testAmount() { 
     Money m = new Money(20); 
     System.out.println("AMOUNT: " + m.amount()); 
     System.out.println("DOUBLE AMOUNT: " + m.doubleAmount()); 
     assertEquals(21, m.amount()); 
    } 

} 

和構建文件是這樣的:

<?xml version="1.0"?> 
<project name="Money" default="build-source" basedir="."> 

    <description>The Money project build file.</description> 
    <property name="src" location="."/> 
    <property name="build" location="build"/> 
    <property name="junit" location="lib/junit-4.8.2.jar"/> 

    <path id="_classpath"> 
     <pathelement path="${junit}"/> 
     <pathelement path="${build}"/> 
    </path> 

    <target name="prepare"> 
     <mkdir dir="${build}"/> 
    </target> 

    <target name="build-source" depends="prepare" description="compile the source "> 
     <javac srcdir="${src}" destdir="${build}"> 
      <classpath refid="_classpath"/> 
     </javac> 
    </target> 

    <target name="run" depends="build-source"> 
     <java classname="${build}/MoneyTest"> 
      <classpath refid="_classpath"/> 
     </java> 
    </target> 

</project> 

當我運行從終端「蟻運行」,它說,它無法找到該路徑下的類。

事先感謝!

回答

4

您已指定位置作爲類別名稱。班級名稱爲money.MoneyTest,而不是/home/build/money/MoneyTest

但是,無論如何,您應該使用junit task而不是java任務,因爲它是JUnit測試而不是Java應用程序本身。 (例如,它沒有main方法。)

+0

Jon, - 感謝您的反饋意見。我將其改爲: <目標名稱= 「運行」 取決於= 「集結源」> <類路徑REFID = 「_類路徑」/> 它現在建立。 「dir」是否與這裏的「junit」任務一起使用是正確的屬性? (我可以看到沒有測試輸出,但這可能是因爲我需要爲此聲明一個單獨的任務)。 – rubyist 2010-08-16 12:46:45

+0

@rubyist:不,「dir」指定一個目錄。改用'test'元素。查看鏈接的文檔頁面底部的示例。 – 2010-08-16 13:11:20

+0

我已經使它現在工作。非常感謝您的幫助。 – rubyist 2010-08-16 13:27:37

相關問題