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

Как организовать запуск нескольких TestSuit?


(Automator) #1

Колеги, привет!

Собственно проблема вот в чем.
Есть проект на maven+Selenium + testng.

Планирую группировать тесты по функциям, которые они проверяют. Группировку планирую организовать по файлам *.xml (аналогичным testng.xml).

Сейчас написано несколько групп тестов. Т.е. имеем несколько xml.

Как мне организовать запуск всех этих тестов одной командой?
// Так же в будущем возможен запуск тестов из Jenkins.

 


(Mykhailo Poliarush) #2

как вы запускаете Ваши тесты?

если Вы запускаете через surefire-plugin, то вам просто надо указать перечень файлов в конфигурации

 

<plugins>
    [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.14</version>
        <configuration>
          <suiteXmlFiles>
            <suiteXmlFile>testng1.xml</suiteXmlFile>
            <suiteXmlFile>testng2.xml</suiteXmlFile>
            <suiteXmlFile>testng3.xml</suiteXmlFile>
            <suiteXmlFile>testng4.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>
    [...]
</plugins>

(Automator) #3

Именно так и пытался, но по непонятным причинам брался один файл сьюта и выполнялся за все остальные.
На вашем примере это выглядело бы примерно так: четыре раза выполнился бы, скажем, testng3.xml.


(Mykhailo Poliarush) #4

хм, странно надо будет потом проверить


(Pnevmoslon) #5

А можно посмотреть весь pom или хотя бы кусок, касающийся настройки плагина? Дело в том, что параметр suiteXmlFiles несовместим с некоторыми другими параметрами.


(Automator) #6

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>SeleniumTests</groupId>
    <artifactId>UI_tests</artifactId>
    <version>1.0</version>
    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.28.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>2.28.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.directory.studio</groupId>
            <artifactId>org.apache.logging.log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-ie-driver</artifactId>
            <version>2.28.0</version>
        </dependency>
        <dependency>
            <groupId>jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.13</version>
                <inherited>true</inherited>
                <configuration>
                    <reportsDirectory>${basedir}/test-output</reportsDirectory>
                    <suiteXmlFiles>
                        <suiteXmlFile>tests.xml/Find_Document.xml</suiteXmlFile>
                        <suiteXmlFile>tests.xml/Create_Folder.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>
 

(Pnevmoslon) #7

Вроде нормальный пом. Непонятно только зачем <inherited>true</inherited> и почему такой странный путь к xml файлам. tests.xml это название папки? Вы вообще уверены, что у вас действительно запускается хоть один xml файл? В случае, если Surefire не находит ваши xml-ки - он будет по дефолту запускать все файлы с такими масками: 

  • "**/Test*.java" - includes all of its subdirectories and all java filenames that start with "Test".
  • "**/*Test.java" - includes all of its subdirectories and all java filenames that end with "Test".
  • "**/*TestCase.java" - includes all of its subdirectories and all java filenames that end with "TestCase".

(Automator) #8

Да, уверен. По отдельности из Идеи и через мавен все работает.

 


(Automator) #9

Коллеги, рад поделиться радостной новостью.
Открыл для себя, что названия сьютов для каждого дочернего TestSuit.xml должно быть уникальным.

Для каждого xml указал соответственно:
<suite name="Create folder test suit" verbose="10">
и
<suite name="Find document test suit" verbose="10">

Еврика!
Ниже ссылка на решение:

https://groups.google.com/forum/?fromgroups=#!topic/testng-users/tE9a8S5NXx4