Как передать параметр из Jenkins -> ANT -> TestNG

  1. В Jenkins идем в настройки Джоба и выставляем "This build is parameterized"
  2. Называем параметр "additionalScreens" например
  3. В ant.xml проставляем
    <property name="additionalScreens" value=""/>
    
  4. В ant.xml в таргете не забываем передать этот параметр в TestNG:
    <target name="Test.Real" depends="compile">  
            <testng outputdir="${testdir}" classpathref="all.classpath" haltOnFailure="true" testnames="Buy">  
                <xmlfileset dir="${basedir}" includes="${testngxml}"/>  
                <jvmarg value="-DadditionalScreens=${additionalScreens}" />  
            </testng>  
    </target>
    
  5. В TestNG.xml параметр никак не фигурирует, там просто вызывается тест:
    <test verbose="1" name="Buy" annotations="JDK">  
        <classes>  
            <class name="TestNG.Buy">  
                <methods>  
                    <include name="shop"/>  
                    <include name="Scan"/>  
                    <include name="Buy"/>  
                </methods>  
            </class>  
        </classes>  
    </test>
    
  6. В методе @BeforeClass принимаем параметр и дальше работаем с ним как хотим:
    @Parameters({ "additionalScreens" })  
        @BeforeClass  
        public void prepare(String additionalScreens, ITestContext context) throws Exception {  
            context.setAttribute("additionalScreens", additionalScreens);  
            //......  
    }
    
  7. Запускаем Джоб в Дженкинсе и заполняем или выбираем параметр "additionalScreens" - он передается в тест. Это может быть, например, урл сервера, или тип проверки, и т.д.
    Не благодари!