簡體   English   中英

AntBuilder 找不到包 org.junit

[英]AntBuilder can't find package org.junit

我使用“JUnit 測試用例”新文件對話框在 Eclipse 中的項目中向測試目錄(與我的 src 目錄平行)添加了一些單元測試。 我有兩個構建器,默認的 Java 構建器和我添加的 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

這是我的構建文件。 在這一點上,我真的在黑暗中開火,例如將該類路徑標記添加到 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>

嘗試將 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>

嘗試直接包含您的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""
 />

希望這可以幫助。

創建路徑元素並在 javac 中引用該 id 有幫助。

<path id="lib.path.id.junit.jar">
    <fileset dir="${project-path}\lib" includes="*.jar" />
</path>

然后我在 javac 中使用 classpathref 引用它

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM