我有以下Ant构建文件:
<?xml version="1.0"?>
<!-- the value of the default attr must be one of the targets. -->
<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.9b3.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">
<junit printsummary="on" showoutput="on">
<test name="money.MoneyTest"/>
<classpath refid="_classpath"/>
</junit>
</target>
</project>
这很基本 - 我只是想让这个东西正常运行。我没有得到的是:1)为什么将编译后的文件输出到/ build / money目录?我希望输出目录只是/ build,给定我的文件的目录结构:
build/
build.xml
lib/
src/
test/
2)当有测试未通过时,它会显示“Test money.MoneyTest FAILED”。我希望它输出有关故障,预期/实际值,行号等信息。
我无法通过盯着上面的构建文件来解决这个问题。有什么建议吗?
答案 0 :(得分:2)
它输出build
下的编译文件,创建一个与包布局相对应的目录结构。
由于您将课程放在money
包中,因此输出将位于build/money
之下。如果您将类放在org.example.foo
包下,那么您的输出将位于build/org/example/foo
目录中。
要将.class
文件放在build
中,您必须使用默认包。
修改强>
我假设您的源文件具有package money;
声明,如:
package money;
public class MoneyTest {
...
}
如果添加<formatter>
元素,有关测试失败的详细报告将写入输出文件(默认情况下,名为TEST- name )。另请参阅Ant Junit Task Documentation。
<junit printsummary="withOutAndErr" showoutput="on">
<formatter type="plain"/>
<test name="money.MoneyTest"/>
<classpath refid="_classpath"/>
</junit>
我还没有找到将失败的测试报告直接打印到标准输出的方法。