Maven с уверенностью не запускает тесты из файла комплекта TestNG xml - PullRequest
0 голосов
/ 30 ноября 2018

Я использую IntelliJ, TestNG, Selenium Web Driver и Maven для зависимостей в качестве настройки для создания тестов автоматизации для моего сайта PHP.Я создал несколько файлов комплекта TestNG xml и могу без проблем запускать их из IntelliJ (щелкнув правой кнопкой мыши по файлу xml и нажав RUN).

Поскольку я хотел иметь возможность запускать эти TestNG xml на Jenkins с помощью MavenСначала я пытаюсь запустить их вручную в терминале, используя просто «mvn clean test», но при этом всегда запускаются все тестовые классы TestNG с именами, заканчивающимися на * Test.Я не могу запустить какой-либо файл комплекта TestNG xml с помощью терминала.

Допустим, сейчас я хочу только, чтобы allTests.xml запускал все, что находится внутри него, то есть тестовый класс «SomeModule.Smoke» (надеюсь имякласса может быть любого формата, если запустить из XML).Я помещаю «allTests.xml» в POM, но независимо от того, что я вставляю в верный файл, ВСЕГДА запускайте все тесты, начиная с * Test, в данном случае RegressionTest.java.Кажется, он полностью игнорирует тег.

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

Структура моего проекта:

├── testSuite1.xml
├── testSuite2.xml
├── allTests.xml
├── myproject.iml
├── deps
│   ...
├── pom.xml
├── src
│   └── test
│       ├── java
│       ├── SomeModule
│       │   │   ├── Smoke.java
│       │   │   ├── RegressionTest.java
│       │   └── testSuite3.xml
│       └── resources
│           └── testSuite4.xml
├── target
│   ├── generated-test-sources
│   │   └── test-annotations
│   ├── maven-status
│   │   └── maven-compiler-plugin
│   │       └── testCompile
│   ├── surefire-reports
│   │   ...
│   └── test-classes
│       ├── SomeModule
│       │   ├── Smoke.class
│       │   ├── RegressionTest.class
│       └── testSuite4.xml
├── test-output
│   ...
├── testSuite5.xml

pom.xml

<?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>CNW</groupId>
    <artifactId>myproject</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.5.0-b01</version>
        </dependency>
        <dependency>
            <groupId>velocity</groupId>
            <artifactId>velocity-dep</artifactId>
            <version>1.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.inject/guice -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.2.2</version>
        </dependency>
    </dependencies>
    <properties>
        <maven.compiler.source>1.9</maven.compiler.source>
        <maven.compiler.target>1.9</maven.compiler.target>
    </properties>
    <profiles>
        <profile>
            <id>myproject_profile</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>3.0.0-M1</version>
                        <configuration>
                            <testSourceDirectory>${basedir}/src/test/java/</testSourceDirectory>
                            <testClassesDirectory>${project.build.directory}/test-classes/</testClassesDirectory>
                            <suiteXmlFiles>
                                <suiteXmlFile>allTests.xml</suiteXmlFile>
                            </suiteXmlFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

allTests.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="allTestsSuite" verbose="1" >
    <test name="Smoke">
        <classes>
            <class name="SomeModule.Smoke"/>
        </classes>
    </test>
</suite>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...