我使用"JUnit测试用例“新文件对话框将一些单元测试添加到Eclipse项目中的测试目录(与我的src目录平行)。我有两个构建器,默认的Java Builder和我添加的AntBuilder。Java Builder继续工作,但是AntBuilder在Eclipse中失败了。当我选择Project -> Build All时,它会显示以下内容:
Buildfile: C:\source\machine-paint\eclipse\machine-paint\src\build.xml
clean:
[delete] Deleting directory C:\source\machine-paint\eclipse\machine-paint\build
compile:
[mkdir] Created dir: C:\source\machine-paint\eclipse\machine-paint\build\classes
[javac] Compiling 33 source files to C:\source\machine-paint\eclipse\machine-paint\build\classes
[javac] C:\source\machine-paint\eclipse\machine-paint\test\stencil\BorderWalkerTest.java:3: error: package org.junit does not exist
[javac] import static org.junit.Assert.*;
[javac] ^然后,在几个类似的错误之后,如下所示:
[javac] C:\source\machine-paint\eclipse\machine-paint\test\stencil\BorderWalkerTest.java:8: error: incompatible types
[javac] @Test
[javac] ^
[javac] required: Annotation
[javac] found: Test这是我的构建文件。在这一点上,我实际上是在摸索,比如将classpath标记添加到javac命令中。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Builder" default="jar" basedir=".">
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="build/classes" />
<javac srcdir="." destdir="build/classes" debug="true" includeantruntime="true">
<classpath>
<path id="org.junit" location="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/junit.jar" />
</classpath>
</javac>
</target>
<target name="jar" depends="compile">
<jar destfile="../../stencil.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="stencil.Main" />
</manifest>
</jar>
<copy file="../../stencil.jar" tofile="../../../robotsdoart/stencils/stencil.jar" />
</target>
<target name="run">
<java jar="build/jar/stencil.jar" fork="true" />
</target>
</project>发布于 2012-10-12 05:46:55
尝试将srcdir更改为您的实际源目录,以便它不包含测试。
类似于:
<javac srcdir="src/" destdir="build/classes" debug="true" includeantruntime="true">
<classpath>
<path id="org.junit" location="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/junit.jar" /> <!-- not sure if you need this -->
</classpath>
</javac>发布于 2012-10-12 05:41:44
尝试直接包含您的junit jar文件。还要确保JAR文件在该位置可用。
<javac
srcdir="."
destdir="build/classes"
debug="true"
includeantruntime="true"
classpath="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/junit.jar"
/>或者将path元素定义为:
<path id="lib.path.id">
<fileset dir="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib"
includes="junit.jar"/>
</path>并在javac中使用与
<javac
srcdir="."
destdir="build/classes"
debug="true"
includeantruntime="true"
classpathref="lib.path.id""
/>希望这能有所帮助。
发布于 2020-06-23 19:59:16
创建一个path元素并在javac中引用该id会有所帮助。
<path id="lib.path.id.junit.jar">
<fileset dir="${project-path}\lib" includes="*.jar" />
</path>然后我使用classpathref在javac中引用了它。
<target name="compile" depends="copy" description="compile all the source files in both src and test directories and should store all the class files in the bin directory.">
<javac destdir="bin" includes="*.java" classpathref="lib.path.id.junit.jar" includeantruntime="true" debug="true" >
<src path="src" />
<src path="test" />
</javac>
</target>https://stackoverflow.com/questions/12848688
复制相似问题