如何参数传递到Ant脚本?(How to pass parameter to ant scripts

2019-07-29 20:05发布

最近我的工作硒的webdriver 2.0(开发自动化框架)。 按规定,每faiulre截图必须是捕获(文件的路径和文件名:./screenshots/testcases/ddmmyyyy/scenario_hhmmss.png),但是我已经捕捉屏幕截图。 当我运行这些整个测试套件(我想生成JUnit报告使得转贴必须截图链接)。现在的问题是,截图路径是动态生成(硒java代码),并在Junit的报告,我想建立超链接最近发生的截图(我已经在使用我们可以创建链接更新帧,report.xslt文件,但它是硬编码)? 请建议任何方式这样做呢?

这里是我的build.xml文件的某些部分

<target name="exec" depends="compile">
        <delete dir="${report}" />
    <mkdir dir="${report}" />
        <mkdir dir="${report}/xml" />
    <junit printsummary="yes" haltonfailure="no">
         <classpath refid="project-classpath" />
        <classpath>
                        <pathelement location="${bin}" />
                        <fileset dir="${lib}">
                            <include name="**/*.jar" />
                        </fileset>
                    </classpath>
        <test name="com.example.tests.NormanTestSuite" 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 styledir="C:\apache-ant-1.8.4\custom" format="frames" todir="${report}/html" >          
    </report>
    </junitreport>
</target>

Answer 1:

使用Java系统属性

你可以通过一个变量作为JVM参数。 假定您已经定义了一个名为“screenShotRoot”变量这样

ant -DscreenShotRoot=/screenshots/testcases

你可以在你的build.xml这样的阅读

<property name="screenshot.root" value="${screenShotRoot}" />

然后,您的ANT任务可以使用这个根路径产生预期的日期适当的路径您的PNG文件。

看到这个Apache Ant的FAQ页面

使用环境变量

您也可以使用操作系统环境变量,通过调用你的脚本之前设置它们。 假定您已经定义了一个名为“screenShotRoot”环境变量像这样在Windows

SET screenShotRoot=/screenshots/testcases

你可以在你的build.xml这样的阅读

<property environment="env"/>
<property name="screenshot.root" value="${env.screenShotRoot}" />

使用属性文件

你也可以写你的链接到一个属性文件Ant脚本加载,这样

<property file="build.properties"/>


Answer 2:

根据该的文档JUnitReport任务 ,你可以使用嵌套通过XSL paramemeters param的标签上report元素。

由于蚂蚁1.7报表标签支持嵌套param标签。 这些标记可以通过XSL参数样式表。

所以,你可以传递参数值样式表是这样的:

<report styledir="C:\apache-ant-1.8.4\custom" format="frames" todir="${report}/html" >          
    <param name="screenshots_link" expression="${screenshots.link}"/>
</report>

我是不是从你的问题不清楚。 我想你说你已经支持您的XSL样式表的参数。 总之,这里的你如何使用它的摘要:

<xsl:stylesheet>

    <!-- declare the parameter you will pass. Could also define a default value -->
    <xsl:param name="screenshot_link"/>


    <xsl:template>

        <!-- use the parameter value -->
        <xsl:value-of select="$screenshot_link"/>


文章来源: How to pass parameter to ant scripts?
标签: ant