0

您好,我尝试在 ant 中创建一个构建,如果它创建一个 html 报告,它将从 eclips 启动我的 .class 文件

"

<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] 导入 o​​rg.junit.rules.ErrorCollector; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:11: 错误:包 org.junit 不存在 [javac] 导入静态 org.junit.Assert。; [javac] ^ [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:14: 错误:找不到符号 [javac] private Selenium selenium; [javac] ^ [javac] 符号:Selenium 类 [javac] 位置:OpenCart 类 [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:17:错误:找不到符号 [javac] public ErrorCollector错误收集器 = 新的错误收集器();[javac] ^ [javac] 符号:类 ErrorCollector [javac] 位置:类 OpenCart [javac] D:\Automation\eclipse\MyWork\OpenCart\src\OpenCart.java:16: 错误:找不到符号 [javac] @Rule [javac] ^ [javac] 符号:类规则 [javac] 位置:类 OpenCart [javac] D:IP /"); [javac] ^ [javac] 符号:类 DefaultSelenium [javac] 位置:类 OpenCart [javac] 15 个错误

构建失败 D:\Automation\eclipse\MyWork\OpenCart\Build.xml:23: 编译失败;有关详细信息,请参阅编译器错误输出。

总时间:1秒

${lib} 包含我用来创建此类的所有库,并且仅运行该类 100% 但是当我尝试在 eclips 中将构建作为 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 的地址。我建议创建一个目录,把所有的罐子放在这个目录里,然后在这里给出地址。
  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 回答