Ant

Как передать параметр из 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" - он передается в тест. Это может быть, например, урл сервера, или тип проверки, и т.д.
    Не благодари!

Как заставить TestNG и ANT разговаривать по русски

Вчера мучался с этим полдня, обгуглился до дрожи в пальцах, но так и не нашел решение. TestNG при запуске через IDEA и своих отчетах выдавал мне ??? вместо русских букв. Самый фак был ещё и в том, что в testng.xml присутствовали параметры на русском языке и ничего не работало. Докопался до того, что при запуске сборки Ant она сама запускает JVM со своими параметрами, такими как classpath и ea (enable assertions), но как туда впихнуть -Dfile.encoding=UTF-8 ?

Оказывается, в таргете внутри ant.xml нужно всего лишь указать следующее (см. строку 4):

<target name="test" depends="compile">  
    <testng outputdir="${testdir}" classpathref="all.classpath" haltOnFailure="true">  
        <xmlfileset dir="${basedir}" includes="testng.xml"/>  
        <jvmarg value="-Dfile.encoding=UTF-8" />  
    </testng>  
</target>