我可以跳过tesng.xml里面的测试吗?

时间:2015-08-13 14:22:14

标签: xml selenium-webdriver testng

我有一个场景,我的一些测试在IE和Firefox上运行,但在Chrome上工作。所以我认为在testng.xml中可以跳过包含测试的类。

示例testng.xml

<suite  name="Test "   parallel="tests"   data-provider-thread-count="2">
 <listeners>
           <listener class-name="ww5.listener.Listener" />
 </listeners>  
 <test name=" Chrome" preserve-order="true" >
     <parameter name="browser" value="chrome"/>
     <parameter name="URL" value="http://95" />
     <classes>
              <class name="ww5.testcases.storageRuleSuite.GoToStorageRulePageTest" ></class> 
              <class name="ww5.testcases.storageRuleSuite.CreateNewStorageRuleTest" ></class>     
     </classes>
 </test>
 <test name="IE" preserve-order="true">
     <parameter name="browser" value="internet explorer"/>
     <parameter name="URL" value="http://95" />
     <classes>
              <class name="ww5.testcases.storageRuleSuite.GoToStorageRulePageTest" ></class> 
              <class name="ww5.testcases.storageRuleSuite.CreateNewStorageRuleTest" ></class>    
     </classes>
 </test> 
  <test name="Firefox" preserve-order="true">
     <parameter name="browser" value="firefox"/>
     <parameter name="URL" value="http://95" />
     <classes>
              <class name="ww5.testcases.storageRuleSuite.GoToStorageRulePageTest" ></class> 
              <class name="ww5.testcases.storageRuleSuite.CreateNewStorageRuleTest" ></class>    
     </classes>
 </test> 

我可以在testng.xml中指定某个地方,我想跳过测试

<class name="ww5.testcases.storageRuleSuite.CreateNewStorageRuleTest" ></class>  

在firefox测试中。

2 个答案:

答案 0 :(得分:0)

您可以使用IHookable侦听器。

public class MyHook implements IHookable {
  public void run(final IHookCallBack icb, ITestResult testResult) {
    ITestContext context = testResult.getTestContext();
    String browser = context.getAttribute("browser");
    if ("firefox".equals(browser) && <add your logic here>) {
      throw new SkipException("The method " + ... + " is not working with firefox");
    }
    icb.callback(testResult);
  }
}

然后,只需testng.xml中的register the listener

答案 1 :(得分:0)

您可以将失败的测试分配给组:

@Test(groups = { "failures" })

然后在testng.xml内添加:

<test name="Firefox" preserve-order="true">
    <parameter name="browser" value="firefox"/>
    <parameter name="URL" value="http://95" />
    <groups>
        <run>
            <exclude name="failures"/>
        </run>
    </groups>
    <classes>
        <class name="ww5.testcases.storageRuleSuite.GoToStorageRulePageTest" ></class>     
    </classes>
</test> 

然后,您可以将该组添加到当前失败的任何测试中。