首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在TestNG测试套件中只执行一个组

无法在TestNG测试套件中只执行一个组
EN

Stack Overflow用户
提问于 2013-10-29 00:19:49
回答 1查看 1.5K关注 0票数 1

我目前正在使用WebDriver、TestNG和Maven运行一个小型测试框架。在这个框架中,我希望通过一组测试,如果不是所有的测试都需要运行的话,偶尔只希望从测试套件中列出的测试组中运行特定的测试。

代码语言:javascript
复制
mvn clean install -Dsuite=smokeTests -Dgroups=loginTest -Denv=qa-env -Dusr=username -Dpwd=password

但是,当我使用包含多个测试的测试套件运行上述行时,它将使用该套件执行所有测试。更奇怪的是,如果我要调用测试套件中的第二个组,它将跳过第一个测试以执行第二个测试,但也会执行其余的测试。下面是POM和示例测试套件。

POM:

代码语言:javascript
复制
... 
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>              
                <version>2.3.2</version>
                <configuration>
                    <compilerVersion>1.6</compilerVersion>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.16</version>             
                <configuration>
                    <includes>
                        <include>**/*.java</include>
                        <include>**/*.xml</include>
                    </includes>                 
                    <groups>${groups}</groups>          
                    <suiteXmlFiles>
                        <!--  suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile-->
                        <suiteXmlFile>src/main/resources/suites/${suite}.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <testSourceDirectory>src/main/java</testSourceDirectory>
                    <properties>
                        <property>
                            <name>usedefaultlisteners</name>
                            <value>false</value>
                        </property>
                        <property>
                            <name>listener</name>
                            <value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>           
        </plugins>
    </build>
...

POM属地

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.3.1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.3</version>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.34.0</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>2.34.0</version>
    </dependency>  
    <dependency>
        <groupId>com.github.detro.ghostdriver</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>1.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.uncommons</groupId>
        <artifactId>reportng</artifactId>
        <version>1.1.4</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>             
            </exclusion>      
        </exclusions>
    </dependency>
    <dependency>
        <groupId>jaxen</groupId>
        <artifactId>jaxen</artifactId>
        <version>1.1.3</version>
        <!-- http://jira.codehaus.org/browse/JAXEN-217 -->
        <exclusions>
            <exclusion>
                <groupId>maven-plugins</groupId>
                <artifactId>maven-cobertura-plugin</artifactId>
            </exclusion>
            <exclusion>
                <groupId>maven-plugins</groupId>
                <artifactId>maven-findbugs-plugin</artifactId>
            </exclusion>
        </exclusions>
    </dependency>      
    <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>1.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>org.beanshell</groupId>
        <artifactId>bsh</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <!--scope>test</scope-->
    </dependency>
</dependencies>

测试套房.xml

代码语言:javascript
复制
<suite name="SmokeTest" verbose="10" parallel="tests" data-provider-thread-count="5">
    <test name="loginTest"> 
        <classes>
            <class name="com.tests.smoke.WebPage_LandingPage" />    
        </classes>
        <groups>
            <run>
                <include name="loginTest"/>
            </run>
        </groups>
    </test>

    <test name="paginationTest">    
        <classes>
            <class name="com.tests.smoke.WebPage_Pagination" /> 
        </classes>
        <groups>
            <run>
                <include name="paginationTest"/>
            </run>
        </groups>
    </test>


    <listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter" />
        <!--listener class-name="org.uncommons.reportng.JUnitXMLReporter" /-->
    </listeners>

</suite>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-25 21:50:36

因此,正如我在上面的评论中所指出的,我决定今天更多地考虑这个问题,并认为我会摆弄那些直接影响我的测试调用的个人依赖关系。在尝试了不同版本的jUnit之后,并没有得到任何进展,我决定回到一个较早的项目中使用的TestNG的旧版本。

改为:

代码语言:javascript
复制
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.0.1</version>
    <scope>compile</scope>
</dependency>

这允许用户输入以下maven语句,以便只执行调用的测试组

代码语言:javascript
复制
mvn clean install -Dsuite=<Smoke> -Dgroups=<testgroup1> -Denv=<thisisanEnvironment> -Dusr=<username> -Dpwd=<password>

我希望这对其他可能陷入同样情况的人有所帮助。谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19647482

复制
相关文章

相似问题

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