首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Maven运行特定的TestNG组

从Maven运行特定的TestNG组
EN

Stack Overflow用户
提问于 2018-01-23 14:50:37
回答 1查看 1.6K关注 0票数 2

我有两组测试用例,如下所述。

代码语言:javascript
复制
@Test(groups="one", dataProvider = "TestData")
public void firstTest(String data){
   //Code
}

@Test(groups="one", dataProvider = "TestData")
public void secondTest(String data){
   //Code
}

@Test(groups="two", dataProvider = "TestData")
public void thirdTest(String data){
   //Code
}

下面是XML文件。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Test-Automation" parallel="methods" thread-count="2" verbose="1">
    <test name="Suite Test" parallel="methods" thread-count="2" verbose="1">
        <listeners>
             <listener class-name="GroupByInstanceEnabler"></listener>
        </listeners>

        <classes>
            <class name="SampleTest">
                <methods>
                    <include name="firstTest"/>
                    <include name="secondTest"/>
                    <include name="thirdTest"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>

下面是pom.xml构建的详细信息。

代码语言:javascript
复制
 <build>
        <finalName>Automation</finalName>
        <filters>
            <filter>profiles/${build.profile.id}/config.properties</filter>
        </filters>
        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>${basedir}/src/test/resources</directory>
            </resource>
        </resources>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>${project.basedir}/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <parallel>method</parallel>
                    <threadCount>2</threadCount>
                </configuration>
            </plugin>

        </plugins>
    </build>

我的问题是:

使用Maven,我如何分别运行组“一”和组“二”。

我试过"mvn测试-Dgroups=two“,但它只正常运行(所有测试)。

注意:我使用两个不同的配置文件运行组“一”与不同的值两次。这就是在pom.xml文件中看到配置文件配置的原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 03:47:01

您可以使用beanshell表达式来完成这一任务。

首先将beanshell表达式添加到您的套件xml文件中,如下所示。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false">
    <test name="Test">
        <method-selectors>
            <method-selector>
                <script language="beanshell">
                <![CDATA[whatGroup = System.getProperty("groupToRun");
                groups.containsKey(whatGroup);
                ]]>
                </script>
            </method-selector>
        </method-selectors>
        <classes>
            <class name="organized.chaos.GroupsPlayGround" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

通过这种方式,您可以使用IDE中的xml套件,仍然可以选择要执行的组。如果没有通过JVM参数-DgroupToRun=one提供任何值,则可以充实此beanshell以默认情况下运行所有内容。

有关beanshell执行的更多信息,请参阅:

  1. 官方TestNG文档这里
  2. 我的博客文章链接
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48404514

复制
相关文章

相似问题

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