Я использую 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>