Java 使用ant编译junit测试类时出现问题
我在将junit与工作的ant build.xml文件集成时遇到问题。我的测试类与源类位于同一目录中。在学习如何使用ant时,我只想编译所有源代码和测试类 我使用的是eclipse,当通过eclipse执行时,junit测试类可以很好地工作。这意味着使用junit.jar和ant-junit-1.7.0.jar正确地设置了类路径(至少从eclipse的角度来看是这样),尽管我不确定后一个jar是否绝对必要 我的文件夹结构是: src/code/MyClass.java src/code/MyClassTest.java ant文件只包含一个目标,为了编译MyClass和MyClassTest,我目前不包含任何junit任务,也不介意将构建文件放在同一目录中:Java 使用ant编译junit测试类时出现问题,java,eclipse,ant,junit,Java,Eclipse,Ant,Junit,我在将junit与工作的ant build.xml文件集成时遇到问题。我的测试类与源类位于同一目录中。在学习如何使用ant时,我只想编译所有源代码和测试类 我使用的是eclipse,当通过eclipse执行时,junit测试类可以很好地工作。这意味着使用junit.jar和ant-junit-1.7.0.jar正确地设置了类路径(至少从eclipse的角度来看是这样),尽管我不确定后一个jar是否绝对必要 我的文件夹结构是: src/code/MyClass.java src/code/MyCl
<target name="compile" >
<javac srcdir="src/" />
</target>
我的想法是,不知何故Ant找不到junit库。因为我没有指定类路径,所以我假设Ant会查看与源文件相同的位置,以找到它需要的内容……我如何告诉Ant junit JAR就在那里
任何想法,我们都非常感激。
关于您需要定义一个类路径并将其用于javac任务
请参阅:了解一些基本信息。是的,您必须指定类路径 自从我上次使用Eclipse已经有很长时间了,但我相信您必须右键单击项目根,选择“属性”,然后将JUnit JAR添加到类路径中 当您使用Ant进行构建时,它必须知道类路径。看看他们的东西 我是这样做的:
<path id="production.class.path">
<pathelement location="${production.classes}"/>
<pathelement location="${production.resources}"/>
<fileset dir="${production.lib}">
<include name="**/*.jar"/>
<exclude name="**/junit*.jar"/>
<exclude name="**/*test*.jar"/>
</fileset>
</path>
<path id="test.class.path">
<path refid="production.class.path"/>
<pathelement location="${test.classes}"/>
<pathelement location="${test.resources}"/>
<fileset dir="${test.lib}">
<include name="**/junit*.jar"/>
<include name="**/*test*.jar"/>
</fileset>
</path>
必须按名称而不是目录指定JAR。使用:
<javac srcdir="src/" classpath="pathtojar/junit.jar"/>
其中“pathtojar”是包含junit jar的路径。事实上,直到我在apache网站上使用fetch.xml来提取jar依赖项之前,我一直运气不佳。那对我来说很好。这就是我所做的:
-埃里克谢谢马可和达菲。尽管根据eclipse package explorer视图,junit.jar被引用在根项目名称的正下方,但我必须通过它的绝对位置直接指向jar。。我的意思是classpath=“/junit.jar”只是不起作用,我不得不说classpath=“C:\Users\Desktop\work\Eclipse\plugins\org.junit4\u 4.3.1\junit.jar”再次感谢!你不必像在评论中那样使用绝对路径。它可以是相对的,但它与ant的执行位置(或项目元素上的basedir属性)相关。不要用正斜杠开始路径,否则它会查看根并将其视为绝对路径。
<javac srcdir="src/" classpath="pathtojar/junit.jar"/>