Ant 蚂蚁公司;协调:类路径问题
我是Ant/Concordion的新手,我的第一个问题是关于堆栈溢出的,所以希望你能温柔一点 尝试设置一个Ant任务来自动运行我的一致性验收测试,并生成一个摘要/概述/索引html页面,其中列出了哪些测试通过、失败等 我正在使用,但有一个问题,我认为我的类路径不正确 包结构是镜像的test/java/spec&test/resources/spec,作为fixture和规范之间的分隔 这是我的build.xmlAnt 蚂蚁公司;协调:类路径问题,ant,junit,classpath,concordion,Ant,Junit,Classpath,Concordion,我是Ant/Concordion的新手,我的第一个问题是关于堆栈溢出的,所以希望你能温柔一点 尝试设置一个Ant任务来自动运行我的一致性验收测试,并生成一个摘要/概述/索引html页面,其中列出了哪些测试通过、失败等 我正在使用,但有一个问题,我认为我的类路径不正确 包结构是镜像的test/java/spec&test/resources/spec,作为fixture和规范之间的分隔 这是我的build.xml <?xml version="1.0" encoding="UTF-8"?&g
<?xml version="1.0" encoding="UTF-8"?>
<project name="Bowling" default="run.acceptance.tests">
<path id="dependencies">
<fileset dir="lib" includes="concordion-ant-task-*.jar"/>
<fileset dir="lib" includes="freemarker*.jar"/>
<fileset dir="lib" includes="junit*.jar"/>
</path>
<taskdef name="junit"
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" />
<taskdef name="generate-test-overview"
classname="bad.robot.concordion.ant.GenerateTestOverviewTask"
classpathref="dependencies"/>
<target name="check.dependencies"
unless="classpath.as.supplied.by.maven">
<!-- <fail message="Missing dependencies, run using Maven instead (*blush*) or switch to use classpathref='dependencies'"/>-->
</target>
<target name="generate-overview"
depends="check.dependencies">
<generate-test-overview
template="src\test\resources\spec\bowlingGame\Overview.ftl"
output="src\test\resources\spec\bowlingGame\Overview.html">
<fileset dir="${basedir}\src\test\resources\spec\bowlingGame\">
<include name="**/*.html"/>
<exclude name="**/Overview.html" />
<exclude name="**/BowlingGame.html" />
</fileset>
</generate-test-overview>
</target>
<echo message="${basedir}" />
<target name="run.acceptance.tests"
depends="generate-overview">
<junit printsummary="on" haltonfailure="yes">
<classpath>
<pathelement location="${basedir}"/>
</classpath>
<formatter type="plain"/>
<test name="Overview"/> <!-- corresponding java fixture, must match the overview page generated -->
</junit>
</target>
</project>
修剪后的
[junit] Implicitly adding C:\Documents and Settings\gafitzgerald\training\lib\junit-4.8.2.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar to CLASSPATH
[junit] Using CLASSPATH C:\Documents and Settings\gafitzgerald\training\Bowling;C:\Documents and Settings\gafitzgerald\training\lib\junit-4.8.2.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar
[junit] Running Overview
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
BUILD FAILED
C:\Documents and Settings\gafitzgerald\training\Bowling\build.xml:31: Test Overview failed
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1840)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:837)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1785)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:785)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
我重新格式化了你的Ant文件,这样更容易阅读 我注意到一些事情:
- 您不必通过
定义JUnit任务。
任务是Ant的一部分。我想这就是为什么您会得到:[antlib:org.apache.tools.ant]无法从resource org/apache/tools/ant/antlib.xml加载定义。找不到它。
- 您需要先编译JUnit测试,然后才能运行它们。这是做这件事的任务吗?通常,在编译JUnit测试时,应在类路径中包括:
- 编译时使用的所有jar
- 您构建的JUnit测试将运行的类
jar的位置(ant-junt.jar已经在类路径中)junit
- 运行JUnit测试时进行Fork测试。我不知道为什么
设置为false,但是JUnit测试应该被forkfork
子实体的
参数应该是要执行的类的名称。我不认为它是概述name
- 不要在失败时停止JUnit测试。一个测试可能失败,但其他测试可能成功
[junit] Implicitly adding C:\Documents and Settings\gafitzgerald\training\lib\junit-4.8.2.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar to CLASSPATH
[junit] Using CLASSPATH C:\Documents and Settings\gafitzgerald\training\Bowling;C:\Documents and Settings\gafitzgerald\training\lib\junit-4.8.2.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar;C:\java\eclipse-helios\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar
[junit] Running Overview
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
BUILD FAILED
C:\Documents and Settings\gafitzgerald\training\Bowling\build.xml:31: Test Overview failed
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1840)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:837)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1785)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:785)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)