java在AntUnit控制台日志中显示完整异常堆栈跟踪
我正在使用Apache AntUnit对我实现的一些JavaAnt任务进行单元测试。 但是,如果我的JavaAnt任务抛出异常,AntUnit控制台日志似乎只输出异常的第一行,这对于确定问题不是很有用。 例如:
[au:antunit] Target: testMyAntTask caused an ERROR
[au:antunit] at line 52, column 166
[au:antunit] Message: java.lang.NullPointerException
[au:antunit] took 0.099 sec
在这里,我只能看到抛出了一个NullPointerException,但没有完整的stacktrace来跟踪问题的根源
这是在通过单独的构建调用我的AntUnit测试脚本时发生的。xml目标:
<target name="run-antunit-tests" description="Run ANT Unit tests" depends="jar">
<taskdef resource="org/apache/ant/antunit/antlib.xml" uri="antlib:org.apache.ant.antunit" classpathref="my.classpath"/>
<property name="antunit.results.dir" location="${basedir}/testResults/antunit-results"/>
<delete dir="${antunit.results.dir}"/>
<mkdir dir="${antunit.results.dir}"/>
<au:antunit>
<file file="antTaskUnitTests.xml"/>
<au:plainlistener logLevel="info"/>
</au:antunit>
</target>
更改为:plainlistener日志级别:<au:plainlistener logLevel="debug"/>
没有任何区别
为了实际获取信息(输出到单独的XML文件),我可以使用xmllistener
<au:antunit>
<file file="antTaskUnitTests.xml"/>
<au:plainlistener logLevel="info"/>
<au:xmllistener logLevel="info" toDir="${antunit.results.dir}"/>
</au:antunit>
然后将在单元中生成一个xml文件。后果dir,对于此NullPointerException示例(为简洁起见截断):
<testcase name="testMyAntTask">
<error columnnumber="167" linenumber="52" message="java.lang.NullPointerException" type="org.apache.tools.ant.BuildException">C:\dev\antTaskUnitTests.xml:52: java.lang.NullPointerException
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:116)
at org.apache.tools.ant.Task.perform(Task.java:348)
...
通过这个stacktrace,我可以找到问题所在。 然而,为了便于使用,我希望将这个stacktrace输出到控制台,而plainlistener似乎没有提供任何选项来输出它
我在使用Ant JUnit测试时遇到了类似的问题,我希望在控制台上显示异常的完整stacktrace。我发现通过使用junit brief formatter,stacktrace被输出。似乎没有一个单位等价物
控制台更可取的原因是这些单元测试将在Jenkins上运行,我不希望必须手动检查工作区来查询AntUtil输出的XML文件
有人知道如何在不实施我自己的AntUnitListener的情况下实现这一点吗
共 (0) 个答案