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

如何使用Jenkins中的maven从多个套件运行特定的TestNG套件

韦安怡
2023-03-14

我有一个maven项目,有3个TestNG套件和4个测试类,我想在jenkins中运行一个特定的套件,我搜索了很多,但只找到了一个命令放在goaltest-DsuiteXmlFile=Jquery中。xml来指定特定的套件,但当我这样做时,它也会运行所有其他套件。我被困在这里很长时间了,请引导我完成这个过程。我还想知道是否有任何设置我可以这样做,如果我选择一个套件运行,我可以运行该套件的任何特定类。我已附上我的项目结构在这里的形象,任何输入将不胜感激。谢谢:)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="WebGuru99">
  <test thread-count="5" name="TestGuru99">
    <classes>
      <class name="com.selenium.vivek.Example2.WebGuru99_1"/>
      <class name="com.selenium.vivek.Example2.WebGuru99_2"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="WebJquery">
  <test thread-count="5" name="TestJquery">
    <classes>
      <class name="com.selenium.vivek.Example2.WebJquery"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="WebRediff">
  <test thread-count="5" name="TestRediff">
    <classes>
      <class name="com.selenium.vivek.Example2.WebRediff"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->
<plugins>
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>Suites/Guru99.xml</suiteXmlFile>
                        <suiteXmlFile>Suites/Rediff.xml</suiteXmlFile>
                        <suiteXmlFile>Suites/Jquery.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>

共有1个答案

郜修雅
2023-03-14

所以,我在这里没有找到任何答案,所以继续我的旅程,探索可以做些什么来绕过这个问题,并找到一个解决方案。因此,面对这种问题的任何人都可能从中受益。

使用

我在pom中添加了'suiteFile'作为标记,然后在中传递它

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <suiteFile></suiteFile>
</properties>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>${suiteFile}</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

然后在jenkins,我通过了clean测试-DsuiteFile=Suites\Jquery。xml作为目标,它只运行该套件。希望对某人有所帮助:)

 类似资料:
  • 主套房.java 对于每个测试套件,都有包含@Test的类 例如 TestSuite1.java TestClass1.java 所以我的问题是如何运行TestSuite1、TestSuite2

  • 我有一个TestNG XML,格式如下: 这个套件有两个类,每个类都有一些@Test方法。现在我想让我的套件以同样的顺序再运行3次,就像它运行一样,即所有的class1方法,然后是class2方法。我怎样才能做到这一点?我正在使用Selenium WebDriver和核心Java来运行我的自动化套件。

  • 我有一个Selenium-Java-TestNG-Maven套件。我正在通过pom XML运行这个。但是maven在testng xml中运行了两次测试。但是,当我运行与TestNG套件相同的TestNG xml时,它的行为是正常的,也就是说,它只像预期的那样运行一次TestNG xml中的测试。 `http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.

  • 我正在使用Maven对一个网站运行TestNG集成测试。目前,我可以使用此命令运行特定的测试类: 我还希望能够指定一个TestNG套件XML文件来运行一系列带有特定参数的类。 我可以在我的POM中设置故障安全插件来接受suiteXmlFiles参数,如下所示: 让我发出这个命令: 但现在我不能用-Dit了。test=“MyTestClassname”选项,因为Maven现在试图传递一个空值作为套件

  • 我试图使用命令行在Maven中运行特定的TestNG套件。 我有两个不同的套房 我的文件如下所示 我正在使用命令 然而,它只会运行回归套件,即使使用somke.xml