测试方法不在testng中按顺序运行

时间:2016-02-05 14:38:42

标签: selenium testing selenium-webdriver automation testng

我正在使用TestNG + WebDriver进行我的自动化项目,但是测试执行的顺序没有按预期工作,下面说明了每个方法的顺序是方法签名和符号

@Test(dependsOnMethods="verifyElementsOnProfileScreen",alwaysRun = true)
    public void verifyMySelfProfileVisibility(){

我使用的TestSuit:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="regressionSuite" parallel="none">

  <parameter name="ApplicationOpt" value="web"></parameter>
  <parameter name="Browser" value="firefox"></parameter>

  <test name="Test">    
    <classes>
        <!-- Login Module -->
      <class name="Tests.Login.LoginApp"/>
        <method>
            <include name ="loginUser"></include>
        </method>

        <!-- Portal Module -->  
         <class name="Tests.Profile.ProfileModule">
            <method>
                <include name="verifyElementsOnProfileScreen"></include>
                <include name="verifyMySelfProfileVisibility"></include>
            </method>
        </class>
        <class name="Tests.Profile.participantAuditLog">
         <method>
            <include name="verifyAuditLogForCreateProfileEvent"></include>
            <include name="verifyAuditLogForUpdateContactInfoEvnet"></include>
            <include name="verifyAuditLogForUpdatePrivacyDirective"></include>
        </method>
     </class>

    </classes>
  </test> <!-- Test -->
</suite> <!-- regressionSuite -->

1 个答案:

答案 0 :(得分:3)

你的意思是指在testng.xml文件中指定的类没有按指定的顺序执行..那么请使用preserve-order =“true”

 <suite name="MySuite" preserve-order= "true">
 <test name="MyTest">

如果要在Class中指定方法执行的顺序,则使用优先级

@Test( priority = 1 )

group-by-instances =“true”如果您遇到不同类的优先级方法的执行顺序不符合预期的情况也很有用。

 <suite thread-count="2" verbose="10" name="testSuite" parallel="tests">
 <test verbose="2" name="MytestCase" group-by-instances="true">

谢谢你, 穆拉利