我正在使用IntelliJ,TestNG,Selenium Web Driver和Maven作为依赖项,以为我的PHP网站创建自动化测试。我已经创建了几个TestNG xml套件文件,并且可以在IntelliJ中运行它们(右键单击xml文件并点击RUN),没有问题。
由于我希望能够使用Maven在Jenkins上运行那些TestNG xml,因此我首先尝试使用“ mvn clean test”在终端中手动运行它们,但始终运行所有以* Test结尾的TestNG测试类。我无法使用终端运行任何TestNG xml套件文件。
让我们暂时说一下,我只希望allTests.xml运行其中的所有内容,即“ SomeModule.Smoke”测试类(我希望该类的名称可以从xml运行任何格式)。我将“ allTests.xml”放在POM中,但是无论我在surefire中插入什么内容,始终以* 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>