首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Maven中仅运行选择性测试用例

如何在Maven中仅运行选择性测试用例
EN

Stack Overflow用户
提问于 2018-07-26 20:44:13
回答 3查看 357关注 0票数 0

场景:

我有大约50个测试用例,我只想在Maven中运行20个them.How来实现这一点

EN

回答 3

Stack Overflow用户

发布于 2018-07-26 21:14:10

你可以使用grouping,它可以在testng中找到。创建一组包含这20个测试方法的组,然后运行特定的组。

让我们假设你的场景:

代码语言:javascript
代码运行次数:0
运行
复制
public class Test1 {
  @Test(groups = { "functest"})
  public void testMethod1() {
  }

  @Test(groups = {"functest"} )
  public void testMethod2() {
  }

  @Test(groups = { "functest" })
  public void testMethod3() {
  }
}

并在Maven的帮助下调用TestNG,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
<test name="Test1">
  <groups>
    <run>
      <include name="functest"/>
    </run>
  </groups>
  <classes>
    <class name="example1.Test1"/>
  </classes>
</test>

这将在您的testng.xml文件中完成。

有关组的更多信息,请访问here

另一种变通办法是,对于您不想在当前配置中运行的方法,使用@Test(enabled = false)。但这将是一项单调乏味的工作。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2018-07-26 21:19:01

您问题的解决方案是一个循序渐进的过程:

最初,使用"groups“注释属性,您可以对您想要运行的测试用例进行分组,如下所示:

示例:

代码语言:javascript
代码运行次数:0
运行
复制
@Test(groups={"groupname"})

然后在TestNG.xml文件中运行特定的组测试用例:

代码语言:javascript
代码运行次数:0
运行
复制
<suite name="Suite" parallel="none">
  <test name="Test">
    <groups>
    <run>
         <include name="Smoke" />
    </run>
    </groups> 

一旦完成,maven只是一个构建工具,它使构建与另一个项目保持一致。

需要遵循Maven构建周期:

1)验证

2)合规

3)测试

4)套餐

5)验证

6)安装

7)部署。

如果您在分组或maven生命周期步骤中遇到任何障碍,请告诉我,我将帮助您解决问题。

票数 0
EN

Stack Overflow用户

发布于 2018-07-27 12:59:51

有两种方法可以做到这一点

  • ,由@cruisepandey通过使用群呼进行解释

限制:它将是静态的群组呼叫,所以这意味着如果你不想要一个单独的群组,它将调用所有的群组。您每次都需要手动管理它。

  • By defined specified Test in TestNG.XML suite,

(由TestNG.XML套件中的指定测试定义的测试

要在Maven中执行选定的测试,您需要在POM.XML中定义目标测试(这可以通过定义类或testng.xml单一套件来实现)

如果您不想使用Maven Test运行它,建议使用.XML文件作为TestNG套件运行它

如何创建选定的TestNG套件,

TestNG.XMl套件定义:

按类划分的:

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5" name="Test">
    <classes>
      <class name="package1.test1"/>
      <class name="package2.test2"/>
      <class name="package6.test6"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

如果你想包含包,你可以这样做:

By Package:

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
        <test name="TesteEmo">
            <packages>
                <package name="package4"></package>
            </packages>
        </test> <!-- Test -->
    </parameter>
</suite> <!-- Suite -->

在POM中调用.XML文件:

代码语言:javascript
代码运行次数:0
运行
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>TestNG.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51539151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档