当前位置: 首页 > 知识库问答 >
问题:

如何让Maven和TestNG运行特定的测试类或套件。xml文件?

戚学文
2023-03-14

我正在使用Maven对一个网站运行TestNG集成测试。目前,我可以使用此命令运行特定的测试类:

mvn -Dit.test="MyTestClassname" verify

我还希望能够指定一个TestNG套件XML文件来运行一系列带有特定参数的类。

我可以在我的POM中设置故障安全插件来接受suiteXmlFiles参数,如下所示:

<configuration>
                        <threadCount>1</threadCount>
                        <suiteXmlFiles>
                            <suiteXmlFile>${basedir}/src/test/resources/suites/${suiteFile}</suiteXmlFile>
                        </suiteXmlFiles>
                        <systemPropertyVariables>
                            <browser>${browser}</browser>
                            <environment>${environment}</environment>
                            <debugMode>${debugMode}</debugMode>
                            <caseId>${caseId}</caseId>
                        </systemPropertyVariables>

</configuration>

让我发出这个命令:

mvn -DsuiteFile="MyTestSuite.xml"

但现在我不能用-Dit了。test=“MyTestClassname”选项,因为Maven现在试图传递一个空值作为套件名称。

有办法吗?再一次,我想:

  • 指定一个测试类(命令行中有一组参数)
  • 指定包含一组测试类和不同参数的testng XML文件

共有2个答案

董高畅
2023-03-14

上述方法对我不起作用。如果你的pom也有错误。当您传递${suiteXmlFile}或我遇到的其他问题时:

  <suiteXmlFiles>
     <suiteXmlFile>*ERROR*${suiteXmlFile}*ERROR*</suiteXmlFile>
  </suiteXmlFiles>

下面是一个更好的解决方案,在命令下,将cd发送到pom的位置。xml文件,然后在命令行上运行:

mvn测试-Dsurefire。suiteXmlFiles=您的文件名(带有FullPathIfNotInRootDirectory)。xml

胡光霁
2023-03-14

我正在使用maven-surefire插件。它允许我运行suitefile和类。这是我的surefire插件

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
                    </suiteXmlFiles>
                    <skipTests>${skipTests}</skipTests>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>

要运行suitefile,我使用

mvn test -DsuiteXmlFile=<suitefile>

要运行类文件,我使用

mvn test -Dtest=<qualified path of the test class>
 类似资料:
  • 我希望能够使用maven从testng套件中运行特定的测试类。我的测试类依赖于testngsuite中的参数。xml文件。我可以运行mvn测试-DsuiteXmlFile=mysuite。xml或。有没有办法把这两者结合起来? 此链接显示如何执行另一项操作,但不能同时执行这两项操作。如何让Maven和TestNG运行特定的测试类或套件。xml文件?

  • 我有一个testng xml文件,它被设置为运行一个特定的类,该类的方法包含以下组标记或被分组为以下类型之一: 并行测试 顺序测试 烟雾测试 虽然我的一些测试被指定为并行或顺序测试,但一些测试可能包含一个额外的标签“冒烟测试”。在这个场景中,我希望能够只运行那些被归类为“烟雾测试”的组件。当我运行测试时,它要么找不到任何测试,要么只是运行所有分组为“sequential-test”的测试。我似乎不

  • 我有一个Selenium项目,使用Maven和TestNG。 我已经尝试了几种不同的方法来使用Maven命令运行测试(我使用的是sure fire插件)。当我运行Maven时,测试不会运行。没有错误。 有没有人有一个很好的例子或教程,我可以遵循使我的测试运行时,我使用mvn测试? 提前道谢。 以下是输出: 和POM文件中的surefire配置:

  • 这是我的pom: 如果您需要更多的信息,让我知道我会修改,但我的TestNG文件实际上只是调用一个测试类,没有任何修饰,如果我直接将它作为TestNG测试执行,它就可以工作。其余的代码可以工作,所以我假设不是这样。也许是Eclipse中的设置?

  • 我有以下testng.xml文件。我希望testng按顺序运行这些测试。我不想将这些测试中的每一个分开到一个新文件中。 我在套件级别上尝试了parallel=“tests”、“classes”、“methods”和thread count=1的组合,但都没有成功。

  • 我有maven测试项目如下: pom.xml testng.xml 跟踪测试。JAVA 当我尝试运行“mvn test”命令时,它运行得很好,但当我尝试使用maven命令运行特定的测试类(如“mvn test-Dtest=TrackerTest”)时,它会引发如下异常: 看起来使用maven命令运行特定的测试类并没有尝试从testng获取参数。xml,我也尝试过类似“mvn test-Dtest=