How to pass parameter to ant scripts?

前端 未结 2 1387
忘了有多久
忘了有多久 2021-02-20 17:19

Recently I am working on selenium webdriver 2.0 (developing automation framework). As per requirement for every faiulre the screenshot must be capture (file path and filename: .

相关标签:
2条回答
  • 2021-02-20 18:01

    Using Java System Property

    You can pass a variable as a JVM argument. Assuming you have a variable named "screenShotRoot" defined like this

    ant -DscreenShotRoot=/screenshots/testcases
    

    you can read it in your build.xml like this

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

    Your ANT task can then use this root path to generate appropriate paths to your PNG files on the date expected.

    See this Apache ANT FAQ page

    Using Environment Variables

    You can also use Operating System environment variables, by setting them before calling your script. Assuming you have an environment variable named "screenShotRoot" defined like this on Windows

    SET screenShotRoot=/screenshots/testcases
    

    you can read it in your build.xml like this

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

    Using Properties Files

    You could also write your links into a properties file that your ANT script loads, like this

    <property file="build.properties"/>
    
    0 讨论(0)
  • 2021-02-20 18:09

    According to the documentation of the JUnitReport task, you can pass XSL paramemeters using a nested param tag on the report element.

    Since Ant 1.7 the report tag supports nested param tags. These tags can pass XSL parameters to the stylesheet.

    So you could pass the parameter value to the stylesheet something like this:

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

    I wasn't clear from your question. I think you said you have already supported the parameter in your XSL stylesheet. Anyway, here's a summary of how you can use it:

    <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"/>
    
    0 讨论(0)
提交回复
热议问题