当前位置: 首页 > 知识库问答 >
问题:

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

上官扬
2023-03-14

你好,我尝试在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>

生成失败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中

请救命!!!

共有1个答案

呼延运恒
2023-03-14

尝试以下build.xml。请记住,您需要在此文件中手动进行以下更改

  1. 项目名称位于第一行
  2. lib.dir地址应该是物理上保存所有JAR的地址。我建议创建一个目录,把所有的罐子放在这里,把地址写在这里。
  3. 我已更改的报表目录,现在它位于project目录下,与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>
 类似资料:
  • 然后,该函数将使用API将一个json对象发送到数据库中,但似乎Volley.new请求队列(this);是一个空值。java.lang.NullPointerExcture:尝试在com.example.kevin.barcodescanner.addToCart.jsonParse的空对象引用上调用虚拟方法com.android.volley.请求com.android.volley.请求ue

  • 我试图通过在本地服务器上创建zip文件来下载a 2文件。文件是以zip格式下载的,但当我试图解压缩它时。它给出了一个错误:找不到中央目录签名的结尾。要么该文件不是zip文件,要么它构成了多部分存档的一个磁盘。在后一种情况下,中心目录和zip文件注释将在该存档的最后一个磁盘上找到。 下面的代码我使用这个: 我检查了传递到函数中的所有变量的值,都很好。所以请看这个。提前谢谢。

  • ubuntu中没有/dev/net目录;我想创建一个tun设备。 这是我的dockerfile: 这是错误信息: 我想在/dev/net目录中创建一个tun文件

  • 我正在使用Apache POI创建和修改excel文件。我希望我的程序用给定的名称创建一个新的。xls文件,如果它不存在于目录中。但是,如果它存在,我希望我的程序只打开那个。xls文件并修改它。 我的程序能够创建一个新的。xls文件,但是每当我试图将该文件作为HSSFWorkbook打开时,程序就会吐出一个错误,说“无效的头签名;读取0x0000000000000000,预期为0xE11AB1A1

  • 我正在尝试编写代码,将一行添加到。我打字,但什么也没显示。我的也有一个错误。 有人知道我怎么重写代码吗?

  • (节点:20056)未处理的promise拒绝警告:未处理的promise拒绝(拒绝id:1):Cordova错误:无法运行“javac-version”,请确保已安装JDK。您可以从以下位置获取:http://www.oracle.com/technetwork/java/javase/downloads.JAVA_HOME无效:C:\Program Files\JAVA\jdk (节点: 20