Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Запуск нескольких тестов в одной сборке через Jenkins (Java+Ant+TestNG)


(Климчук Иван) #1

Всем привет!
Написано несколько тестов на Java, собираются с помощью Ant, запускаются через TestNG.

Тесты находятся в одном троекте/пакете.

При запуске всех (трех тестов) через IDE (Eclipse), или через Ant (с консоли)  - тесты запускаются по очереди и сборка успешно отрабатывает.

А вот при запуске той же сборки с помощью Jenkins (через build.xml Ant): после отработки функционала первого теста - вся сборка зависает (на длительный строк) - никаких результатов (pass/fail) Jenkis не выдает, просто висит.

Так, как со сборками запуска тестов не очень знаком, думаю, что проблема может быть в конфиг-файле, он следующий:

     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
     <suite name="Regress test suite!">
       <test name="Test1_regress">
         <classes>
           <class name="tests.Test1_regress"></class>
         </classes>
       </test>
       <test name="Test2_regress">
         <classes>
           <class name="tests.Test2_regress"></class>
         </classes>
       </test>
       <test name="Test3_regress">
         <classes>
           <class name="tests.Test3_regress"></class>
         </classes>
       </test>
     </suite>
Может кто-то сталкивался с подобной проблемой?

 


(streLer) #2

Сам работаю с jUnit.  

покажите build.xml 

Ваш Конфиг файл вроде корректный.

можно скрин с Jenkins прикрепить?


(Климчук Иван) #3

Мой build.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
              Any modifications will be overwritten.
              To include a user specific buildfile here, simply create one in the same
              directory with the processing instruction <?eclipse.ant.import?>
              as the first entry and export the buildfile again. --><project basedir="." default="build" name="com.regress">
    <property environment="env"/>
    <property name="ECLIPSE_HOME" value="D:/eclipse-jee-juno-win32-x86_64/eclipse"/>
    <property name="debuglevel" value="source,lines,vars"/>
    <property name="target" value="1.7"/>
    <property name="source" value="1.7"/>
    <path id="LogsLibrary.userclasspath">
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/logs-resource/logback-classic-1.0.7.jar"/>
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/logs-resource/logback-core-1.0.7.jar"/>
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/logs-resource/slf4j-api-1.7.2.jar"/>
    </path>
    <path id="screen-recorder.userclasspath">
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/screen-player-r2.2.jar"/>
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/screen-recorder-r2.2.jar"/>
    </path>
    <path id="Selenium-2-27.userclasspath">
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/selenium-java-2.27.0.zip"/>
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/selenium-server-standalone-2.27.0.jar"/>
    </path>
    <path id="org.testng.reporters.XMLReporter.userclasspath">
        <pathelement location="C:/Users/klimchukivan/Desktop/myTest/resource/org.testng.reporters.XMLReporter/testng-5.7-jdk15.jar"/>
    </path>
    <path id="com.regress.classpath">
        <pathelement location="bin"/>
        <path refid="LogsLibrary.userclasspath"/>
        <path refid="screen-recorder.userclasspath"/>
        <path refid="Selenium-2-27.userclasspath"/>
        <path refid="org.testng.reporters.XMLReporter.userclasspath"/>
    </path>
    <target name="init">
        <mkdir dir="bin"/>
        <copy includeemptydirs="false" todir="bin">
            <fileset dir="src">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>
    <target name="clean">
        <delete dir="bin"/>
    </target>
    <target depends="clean" name="cleanall"/>
    <target depends="build-subprojects,build-project" name="build"/>
    <target name="build-subprojects"/>
    <target depends="init" name="build-project">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}">
            <src path="src"/>
            <classpath refid="com.regress.classpath"/>
        </javac>
    </target>
    <target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/>
       <taskdef resource="testngtasks" classpathref="com.regress.classpath"/>
       <target name="run" depends="build">
        <mkdir dir="test-report"/>
           <testng>
             <classpath refid="com.regress.classpath" />
               <xmlfileset dir="." includes="testng-customsuite.xml" />
              <reporter classname="org.testng.reporters.XMLReporter"/>
           </testng>
    </target>
</project>


screen c Jenkins


(streLer) #4

1. Обновите Селениум до 2.28

2. Если используете FF то какая версия? 

3.  Зачем вы вызываете ант через командную строку? 

если уж через командную то , что у вас прописано в ant.bat ??

должно быть : ant clean compile run

4. Jenkins стоит локально я так понимаю? 


(Климчук Иван) #5

1. Обновил Селениум до 2.28

2, FireFox 17.0.1

4,Jenkins стоит локально

3, Вызываю Ант через командную строку, потому, что так советовали настраивать проект в Jenkins и в build.xml прописывать:

            <target name="run" depends="build">

По поводу ant.bat - там все дефолтное (ничего не менял после загрузки с оф.сайта) у меня файл следующего содержания

Подскажите, что нужно исправить в ant.bat, или по-другому вызывать ант (не через консоль)?


(Климчук Иван) #6

Разобрался с проектом: была изменена структура (добавлен новый пакет), а в build.xml изменения не внесены.
Огромное спасибо за помощь streLer!!!