Как запустить тесты TestNG на Jenkins

Я пытаюсь запустить тесты TestNG (в содержащемся проекте Java) от Дженкинса, но не повезло.

похоже, что плагин TestNG для Jenkins (https://wiki.jenkins-ci.org/display/JENKINS/testng-plugin) публикует только результаты тестов TestNG, но фактически не запускает тестовые классы... или я ошибаюсь?

в любом случае, как я на самом деле запускаю тесты TestNG в проекте TestNG с Дженкинсом, или это вообще возможно? Я должен использовать инструкция командной строки или пакетный файл (в Windows Server 2008), например?

любая помощь очень ценится.

П. С. я попытался ввести командную строку после сборки в Jenkins для проекта для запуска тестов TestNG, но было трудно с путями классов, не найденными для TestNG. Я опубликовал более ранний вопрос о запуске TestNG из командной строки, который я не мог заставить работать, поэтому я отказался от этого маршрута:

как запустить TestNG из командной строки

3 ответов


как указано выше, Pls использует следующий сценарий ant для запуска модульных тестов TestNG. Пожалуйста, подправить код, чтобы удовлетворить ваши требования.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="Ant Play">
    <property name="classes.dir" value="bin" />
    <property name="report.dir" value="test-output" />
    <path id="classpath">
        <fileset dir="lib">
            <include name="**/*.jar"/>
         </fileset>
        <pathelement path="${basedir}${classes.dir}"/>
    </path>
    <target name="init">
        <mkdir dir="${classes.dir}"/>
        <copy includeemptydirs="false" todir="${classes.dir}">
            <fileset dir="src">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>
    <target name="clean">
        <delete dir="${classes.dir}"/>
    </target>
    <target depends="clean" name="cleanall"/>
    <target depends="build-project" name="build"/>
    <target depends="init" name="build-project">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <javac debug="true" includeantruntime="false" destdir="${classes.dir}">
            <src path="src"/>
            <classpath refid="classpath"/>
        </javac>
    </target>
    <target  depends="build" name="runTests" description="Running tests" >
        <echo>Running Tests...</echo>
        <taskdef resource="testngtasks" classpathref="classpath"/>
        <testng outputDir="${report.dir}"
            haltonfailure="true"
            useDefaultListeners="false"
            listeners="org.uncommons.reportng.HTMLReporter"
            classpathref="classpath">
            <xmlfileset dir="${basedir}" includes="testng.xml"/>
            <!--<classfileset dir="${classes.dir}" includes="**/*.class" />-->
        </testng>
    </target>
</project>

дайте мне знать, если у вас возникнут вопросы. Кстати, pls использует плагин/задачу Jenking ant для запуска этого скрипта


есть два шага для выполнения этой задачи: -

Шаг 1:-

  1. перейдите в localhost: 8080 / configure (раздел Настройки Дженкинса)

  2. Теперь перейдите в раздел JDK и снимите флажок установить автоматически (если вы не снимите флажок, то он будет загружать последнюю версию java каждый раз, когда она доступна, и может привести к сбою сборки)

  3. поместите JAVA_HOME в раздел name и домашний путь jdk в JAVA_HOME раздел

enter image description here

  1. применить и сохранить

Шаг 2:-

  1. перейдите к Дженкинсу и добавьте новый элемент, также выберите "проект свободного стиля" и нажмите "ОК".

  2. нажмите "Дополнительно" в "Расширенные параметры проекта"

  3. теперь проверьте опцию: - "Использовать пользовательское рабочее пространство" и укажите абсолютный путь к проекту в разделе каталога

enter image description here

  1. применить

  2. теперь, чтобы перейти " построить "и выбрать"выполнить пакетную команду windows"

  3. здесь в столбце command Укажите имя файла вашего пакетного файла enter image description here
  4. применить и сохранить

Теперь перейдите в Jenkins и выберите свой проект Jenkins и нажмите Build:)


Я использую gradle для запуска тестов testNG от Дженкинса. Взгляните на в Gradle в документы.

я запускаю тесты testNG, используя файлы конфигурации xml. Взгляните на документы testNG.

есть довольно много, чтобы покрыть, поэтому я предлагаю прочитать эти источники, но я предоставлю некоторые соответствующие части из одной из моих конфигураций.

соответствующие части из моей сборки.Gradle в

tasks.withType(Test) {

    useTestNG {
        useDefaultListeners = true
    }

    options {
        outputDirectory = file('test-report')
        listeners << 'org.uncommons.reportng.JUnitXMLReporter'
    }

    testLogging.showStandardStreams = true

    systemProperties System.getProperties()
    systemProperty "org.uncommons.reportng.escape-output", "false"
    systemProperty "org.uncommons.reportng.title", "Test Report"

    ignoreFailures = true
}


task Smoke_Test(type: Test) {
    description "SmokeTest"
    options.suites("resources/testng-smoketest.xml")      
    ignoreFailures = false
}

мой TestNG xml, как указано выше 'testng-smoketest.с XML'

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Smoke Tests" >
    <test name="BootCheck" parallel="false" thread-count="1">
        <classes>
            <class name="com.x.automation.y.tests.smoke.BootCheck" />
        </classes>
    </test>
</suite>    

и из Дженкинса, как шаг сборки "выполнить оболочку", запустите задачу gradle, я использую оболочку gradle для удобства.

./gradlew clean Smoke_Test

убедитесь, что вы находитесь в правильном каталоге, 'Smoke_Test' - это имя, указанное в сборке.градля.

вы можете использовать плагин testNG Jenkins для сохранения результатов.

Я также рекомендую использовать reportng для славного форматирования ваших отчетов по испытанию которые можно также показать и сохранено в Jenkins с помощью плагина HTML Publisher.

попробуйте заставить это работать с CLI на вашем локальном компьютере сначала, пытаясь отладить при запуске с Дженкинса, вы сойдете с ума.