作为Ant目标运行JUnit测试

问题描述:

我在/ 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> 

当我运行从终端“蚁运行”,它说,它无法找到该路径下的类。

事先感谢!

您已指定位置作为类别名称。班级名称为money.MoneyTest,而不是/home/build/money/MoneyTest

但是,无论如何,您应该使用junit task而不是java任务,因为它是JUnit测试而不是Java应用程序本身。 (例如,它没有main方法。)

+0

Jon, - 感谢您的反馈意见。我将其改为: 它现在建立。 “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