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

时间:2018-07-26 12:44:13

标签: maven selenium testing selenium-webdriver

场景:

我大约有50个测试用例,我只想运行其中的20个。如何在Maven中实现这一点

3 个答案:

答案 0 :(得分:2)

您可以进行分组,该分组在 testng 中可用。设置一组将包含这20种测试方法的组,然后运行该特定组。

让我们为您介绍一个场景:

public class Test1 {
  @Test(groups = { "functest"})
  public void testMethod1() {
  }

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

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

然后在Maven的帮助下调用TestNG:

<test name="Test1">
  <groups>
    <run>
      <include name="functest"/>
    </run>
  </groups>
  <classes>
    <class name="example1.Test1"/>
  </classes>
</test>

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

有关组的更多信息,请参见here

另一种解决方法是将@Test(enabled = false)用于您不想在当前配置下运行的方法。但这将是一件乏味的工作。

希望这会有所帮助。

答案 1 :(得分:0)

您的问题的解决方案是一个逐步的过程:

最初,使用“组”注释属性可以将要运行的测试用例进行分组,如下所示:

示例:

select: function (start, end, jsEvent, view) {
            if (start.isBefore(moment())) {
                $('#calendar').fullCalendar('unselect');
                return false;
            }
            else {

                 var currentDate = moment(start).format('YYYY/MM/DD'));
                 alert(currentDate);
            } 
        }

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

@Test(groups={"groupname"})

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

需要遵循Maven的构建周期:

1)验证

2)遵守

3)测试

4)包装

5)验证

6)安装

7)部署。

如果您在分组或Maven生命周期步骤中遇到任何障碍,请告诉我,我将为您提供帮助。

答案 2 :(得分:0)

有两种方法,

  • @cruisepandey 通过使用群组通话进行的解释

    限制:这将是静态群组通话,因此,如果您不希望任何群组通话,则每次通话都会呼叫所有群组。而且您需要每次手动进行管理。

  • 通过在TestNG.XML套件中定义指定的测试,

要在Maven中执行选定的Test,您需要在POM.XML中定义目标Test(可以  通过定义类或testng.xml单套件)

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

如何创建选定的TestNG套件,

TestNG.XMl套件定义:

按班级

<?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 -->

如果要包含包装,则可以按照以下步骤进行操作:

通过软件包:

<?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 -->

将.XML文件调用到POM中:

<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>