den*_*chr 3 java eclipse ant junit
我在将junit与工作的ant build.xml文件集成时遇到问题.我的测试类与我的源类位于同一目录中.在我学习如何使用ant时,我只想编译所有源代码和测试类.
我正在使用eclipse,junit测试类在通过eclipse执行时工作正常.这意味着使用junit.jar和ant-junit-1.7.0.jar正确设置了类路径(至少从eclipse的角度来看),尽管我不确定后一个jar是否绝对必要.
我的文件夹结构是:
src/code/MyClass.java src/code/MyClassTest.java
并且ant文件只包含一个目标,只是为了编译MyClass和MyClassTest,我现在不包含任何junit任务,并且不介意将构建文件放在同一目录中:
<target name="compile" >
<javac srcdir="src/" />
</target>
Run Code Online (Sandbox Code Playgroud)
Ant工作正常,直到我在我的文件夹中添加了MyClassTest.java(带注释的Junit).输出是:
[javac] C:\....\src\MyClassTest.java:3: package org.junit does not exist
cannot find symbol
Run Code Online (Sandbox Code Playgroud)
我的想法是,Ant无法找到junit库.由于我没有指定类路径,我假设Ant会查找与源文件相同的位置以查找它需要的内容...我怎么能告诉Ant junit jar就在那里?
任何想法,真的很感激.问候
是的,您必须指定CLASSPATH.
自从我上次使用Eclipse以来已经很长时间了,但我相信您必须右键单击项目根目录,选择"属性",然后将JUnit JAR添加到CLASSPATH.
当你使用它来构建时,Ant必须知道CLASSPATH.看看他们的<path>东西.
我是这样做的:
<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>
Run Code Online (Sandbox Code Playgroud)
必须通过名称而不是目录来指定Jars.使用:
<javac srcdir="src/" classpath="pathtojar/junit.jar"/>
Run Code Online (Sandbox Code Playgroud)
其中"pathtojar"是包含junit jar的路径.
| 归档时间: |
|
| 查看次数: |
15152 次 |
| 最近记录: |