作为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
方法。)
Jon, - 感谢您的反馈意见。我将其改为: 它现在建立。 “dir”是否与这里的“junit”任务一起使用是正确的属性? (我可以看到没有测试输出,但这可能是因为我需要为此声明一个单独的任务)。 –
rubyist
2010-08-16 12:46:45
@rubyist:不,“dir”指定一个目录。改用'test'元素。查看链接的文档页面底部的示例。 – 2010-08-16 13:11:20
我已经使它现在工作。非常感谢您的帮助。 – rubyist 2010-08-16 13:27:37