0

こんにちは、ant でビルドを作成しようとしています。それは、eclips から .class ファイルを開始する html レポートを作成します。

"

<property name="src"    value="D:/Automation/eclipse/MyWork/OpenCart/src" />
<property name="lib"    value="D:/Automation/eclipse/MyWork/OpenCart/lib/" />
<property name="bin"    value="D:/Automation/eclipse/MyWork/build" />
<property name="report" value="d:/Automation/report" />
<path id="test.classpath">


    <pathelement location="${bin}"/>
    <fileset dir="${lib}">
        <include name="${lib}/junit.jar" />
    </fileset>
</path>

<target name="init">
    <delete dir="${bin}" />
    <mkdir dir="${bin}" />
</target>
<target name="compile" depends="init">
    <javac source="1.7" srcdir="${src}" fork="true" destdir="${bin}" includeantruntime="false" >
        <classpath>
            <pathelement path="${bin}">
            </pathelement>
            <fileset dir="${lib}">
                <include name="${src}/TestCases/OpenCart.class" />
            </fileset>
        </classpath>
    </javac>
</target>

<target name="exec" depends="compile">
    <delete dir="${report}" />
    <mkdir dir="${report}" />
        <mkdir dir="${report}/xml" />
    <junit printsummary="yes" haltonfailure="no">
        <classpath>
            <pathelement location="${bin}" />
            <fileset dir="${lib}">
                <include name="${src}/TestCases/OpenCart.class" />
            </fileset>
        </classpath>

        <test name="com.selftechy.seltests.SeleniumTest" haltonfailure="no" todir="${report}/xml" outfile="TEST-result">
            <formatter type="xml" />
        </test>
    </junit>
    <junitreport todir="${report}">
        <fileset dir="${report}/xml">
            <include name="TEST*.xml" />
        </fileset>
        <report format="frames" todir="${report}/html" />
    </junitreport>
</target>

"

エラーが表示されます: "

Buildfile: D:\Automation\eclipse\MyWork\OpenCart\Build.xml init:
[delete] ディレクトリの削除 D:\Automation\eclipse\MyWork\build [mkdir] 作成されたディレクトリ: D:\Automation\eclipse\MyWork\build compile : [javac] 1 つのソース ファイルを D:\Automation\eclipse\MyWork\build にコンパイルします [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:3: エラー: パッケージ com.thoughtworks.selenium は行います存在しません [javac] com.thoughtworks.selenium をインポートします。; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:5: エラー: パッケージ org.junit が存在しません [javac] import org.junit.After; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:6: エラー: パッケージ org.junit が存在しません [javac] import org.junit.Before; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:7: エラー: パッケージ org.junit が存在しません [javac] import org.junit.Rule; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:8: エラー: パッケージ org.junit が存在しません [javac] import org.junit.Test; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:9: エラー: パッケージ org.junit. ルールが存在しません [javac] import org.junit.rules.ErrorCollector; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:11: エラー: パッケージ org.junit が存在しません [javac] import static org.junit.Assert.; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:14: エラー: シンボルが見つかりません [javac] プライベート Selenium selenium; [javac] ^ [javac] シンボル: クラス Selenium [javac] 場所: クラス OpenCart [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:17: エラー: シンボルが見つかりません [javac] public ErrorCollector errorCollector = new ErrorCollector(); [javac] ^ [javac] シンボル: クラス ErrorCollector [javac] 場所: クラス OpenCart [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:16: エラー: シンボルが見つかりません [javac] @Rule [javac] ^ [javac] シンボル: class ルール [javac] 場所: class OpenCart [javac] D:IP /"); [javac] ^ [javac] シンボル: クラス DefaultSelenium [javac] 場所: クラス OpenCart [javac] 15 エラー

ビルドに失敗しました D:\Automation\eclipse\MyWork\OpenCart\Build.xml:23: コンパイルに失敗しました。詳細については、コンパイラ エラー出力を参照してください。

合計時間: 1 秒

${lib} には、このクラスを作成するために使用したすべてのライブラリが含まれており、クラスのみを実行すると 100% 動作しますが、Eclipse でビルドを Ant ビルドとして実行しようとすると、このエラーが発生します

%JAVA_HOME% を jdk に設定し、cmd で javac を実行すると、junit.jar が ${lib} と %ANT_HOME%/lib と %JAVA_HOME%/lib にあることがわかります

助けてください !!!

4

1 に答える 1

0

次の build.xml を試してください。このファイルで手動で行う必要がある次の変更に注意してください

  1. 最初の行のプロジェクト名
  2. lib.dir アドレスは、すべての jar が物理的に保持されているアドレスにする必要があります。ディレクトリを作成し、すべての jar ファイルをこのディレクトリに配置して、ここにアドレスを指定することをお勧めします。
  3. 変更したレポート ディレクトリは、src と並行してプロジェクト ディレクトリの下にあります。必要に応じて変更できます。

他の多くの機能を持つ build.xml を、使いやすいものに変更したことに注意してください。非常に慎重に更新しましたが、誤って変更を残すことはほとんどありません。それでも問題が見つかった場合は、できる限りお手伝いさせていただきます。

    <project name="ProjectName" basedir=".">
    <property name="home.dir" value="${basedir}"/>
    <property name="build.dir" value="${home.dir}/build"/>
    <property name="src.dir" value="${home.dir}/src"/>
    <property name="report.dir" value="${home.dir}/report" />
    <property name="lib.dir" value="H:/Selenium/jar_collection"/>
    <!-- setClassPath -->
    <target name="setClassPath">
        <path id="classpath_jars">
            <pathelement path="${basedir}/" />
            <fileset dir="${lib.dir}" includes="*.jar" />
        </path>
        <pathconvert pathsep=":" property="test.classpath" refid="classpath_jars" />
    </target>
    <!-- build -->
    <target name="build">
        <mkdir dir="${build.dir}"/>
        <tstamp>
            <format property="timestamp" pattern="dd-MM-yyyy_(HH-mm-ss)"/>
        </tstamp>
        <property name="build.log.dir" location="${basedir}/buildlogs"/>
        <mkdir dir="${build.log.dir}"/>
        <property name="build.log.filename" value="build_${timestamp}.log"/>
        <record name="${build.log.dir}/${build.log.filename}" loglevel="verbose" append="false"/>
        <echo message="build logged to ${build.log.filename}"/>
    </target>
    <!-- Clean -->
    <target name="clean">
        <echo message="deleting existing build directory"/>
        <delete dir="${build.dir}"/>
    </target>
    <!-- Compile -->
    <target name="compile" depends="clean,build,setClassPath">
        <echo message="classpath:${test.classpath}"/>
        <echo message="compiling.........."/>
        <javac destdir="${build.dir}" srcdir="${src.dir}" classpath="${test.classpath}"/>
    </target>
    <!-- Execute -->    
    <target name="exec" depends="compile">
        <delete dir="${report.dir}" />
        <mkdir dir="${report.dir}" />
            <mkdir dir="${report.dir}/xml" />
        <junit printsummary="yes" haltonfailure="no">
            <classpath>
                <pathelement location="${build.dir}" />
                <fileset dir="${lib.dir}">
                    <include name="${src.dir}/TestCases/OpenCart.class" />
                </fileset>
            </classpath>
            <test name="com.selftechy.seltests.SeleniumTest" haltonfailure="no" todir="${report.dir}/xml" outfile="TEST-result">
                <formatter type="xml" />
            </test>
        </junit>
        <junitreport todir="${report.dir}">
            <fileset dir="${report.dir}/xml">
                <include name="TEST*.xml" />
            </fileset>
            <report format="frames" todir="${report.dir}/html" />
        </junitreport>
    </target>
    </project>
于 2013-09-03T15:47:31.627 に答える