不能识别其lib目录中的JUnit jar



我在Windows XP下使用Cygwin,我试图让Ant使用JUnit,而不为它编码任何类路径条目。JUnit的文档说我可以:

将junit.jar和ant-junit.jar放到ANT_HOME/lib中。

我的《JUnit in Action》说:

您可能已经注意到,您没有显式地将JUnit JAR添加到类路径中。请记住,在安装Ant时,为了使用JUnit Ant任务,您将JUnit JAR文件复制到${ANT_HOME}/lib目录。因为junit.jar已经在您的类路径中,所以您不需要在javac任务中指定它来编译您的测试。

$ANT_HOME设置为Ant安装目录。在lib子目录中,我看到了Ant -junit.jar(与Ant一起安装)和junit-4.9.jar(由我复制)。看起来不错,对吧?但是测试编译步骤失败:

[javac] Compiling 1 source file to E:toolsctgbintest
[javac] E:toolsctgsrctestTestAll.java:3: package org.junit does not exist
[javac] import org.junit.*;

等等。我试着将junit-4.9.jar重命名为junit.jar。没有快乐。我偷看了一下jar文件,看到包确实存在于其中。事实上,如果我显式地在Ant类路径中包含那个jar文件,编译器就可以正常工作。

在那里。有什么问题吗?谢谢。

编辑:根据请求,这是javac目标:
<path id="classpath">
   <pathelement location="${app-bin}"/>
   <pathelement location="${test-bin}"/>
   <!--pathelement location="${junit-bin}"/-->
</path>
<target name="compile-test" depends="compile-app">
   <javac srcdir="${test-src}"
          destdir="${test-bin}"
          source="${java}"
          target="${java}"
          debug="on"
          includeantruntime="false">
      <compilerarg value="-Xlint"/>
      <classpath refid="classpath"/>
   </javac>
</target>

注意,JUnit二进制文件被注释掉了。我的目标是删除它并使编译工作。

includeantruntime="false"告诉ant编译时不要在lib目录下包含这些库。

您必须将jar添加到类路径中,该类路径将提供给javac目标。或者将该属性设置为true

尝试从junit jar文件名中删除版本号。
即将junit-4.9.jar重命名为junit.jar

最新更新