**首先:我已经阅读了这里关于如何做到这一点的每一篇文章,我正在遵循这封信的所有说明,包括来自 Maven 本身的说明。
我已经使用 TestNG 将 Eclipse Selenium 项目转换为 Maven 项目。我无法让 Maven 从 Test.XML 文件运行我的测试,而不是在默认模式下运行,它只选择文件名中带有“Test”一词的任何内容......我可以直接执行 test.xml 和所有内容有效,所以我认为我的转换正确。由于我正在从现有框架进行转换,因此将所有内容切换为使用默认的“只需抓取任何称为 'test' 的东西”所需的努力是令人望而却步的,我希望 SureFire 使用我的 Test.XML 文件。
我是 Maven 新手,所以请原谅我没有使用正确的术语,但是:当我以 TEST 的“目标”“运行”POM 文件时,它只会忽略我的 test.xml 文件并运行其中包含“test”一词的任何内容,我通过更改名称等验证了这一点......我主要从 Eclipse 运行,几次我尝试命令行的结果相同。
这是我的POM:
<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>test</groupId>
<artifactId>TestSuite</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>TestSuite</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugin</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/test.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.35.0</version>
</dependency>
</dependencies>
</project>
如果您需要更多信息,请告诉我,我会修改,但我的 TestNG 文件实际上只是调用了一个测试类,如果我直接将其作为 testNG 测试执行,它就可以工作。其余代码有效,所以我假设不是那样。也许是 Eclipse 中的一个设置?