testNG没有执行testng.xml文件中的所有方法

时间:2015-12-05 05:49:43

标签: testng

/ testng没有执行类attribute.testng中提到的所有方法,允许在class属性中添加多个方法属性。运行它时,只执行testng xml中提到的最后一个方法(methodname2)< / em> /

&#13;
&#13;
<suite name="test" verbose="1">
  <test name="test-Testing">
    <classes>
      <class name="com.qa.testcases.test">
        <methods>
          <parameter name="name" value="name"></parameter>
          <parameter name="description" value="description"></parameter>
          <include method="methodname1" />
        </methods>
        <methods>
          <parameter name="name1" value="name1"></parameter>
          <parameter name="description1" value="description1">/parameter>
            <include method="methodname2" />
        </methods>
      </class>
    </classes>
  </test>
</suite>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

我认为问题是您的<methods>节点中有两个<class>个节点。但是,虽然我找不到任何明确说明两个<methods>节点无效的内容,但我可以说,我从未见过或使用过这种格式的TestNG XML文件。

我所看到的是两个测试方法,每个测试方法都有自己的一组参数。我的建议是简单地重新组织你的XML。我会建议两个选项中的一个(虽然这些当然不是唯一有效的选项):

一种方法是将XML分解为两个<test>节点,每个节点运行其中一个方法,并使用它自己的一组参数。

<suite name="test" verbose="1">
<test name="test-Testing1">
    <parameter name="name" value="name"></parameter>
    <parameter name="description" value="description"></parameter>
    <classes>
        <class name="com.qa.testcases.test">
            <methods>
                <include method="methodname1" />
            </methods>
        </class>
    </classes>
</test>
<test name="test-Testing2">
    <parameter name="name1" value="name1"></parameter>
    <parameter name="description1" value="description1">/parameter>
    <classes>
        <class name="com.qa.testcases.test">
            <methods>
                <include method="methodname2" />
            </methods>
        </class>
    </classes>
</test>
</suite>

通过上述内容,您可能需要根据需要重新调整配置注释(@ Before / After)并进行小调整(请记住,注释会映射到TestNG中的XML节点)。

第二个选项会将所有内容保存在一个<test>节点中,然后依靠每个@Test方法使用相应的@Parameters注释从XML中获取正确的参数。

<suite name="test" verbose="1">
<test name="test-Testing">
    <parameter name="name" value="name"></parameter>
    <parameter name="description" value="description"></parameter>
    <parameter name="name1" value="name1"></parameter>
    <parameter name="description1" value="description1">/parameter>
    <classes>
        <class name="com.qa.testcases.test">
            <methods>
                <include method="methodname1" />
                <include method="methodname2" />
            </methods>
        </class>
    </classes>
</test>
</suite>

有了上述内容,代码中的methodname1()将需要@Parameters注释来调用namedescription,而methodname2()会调用name1 }和description1

从这里开始,您可以通过XML布局获得更多创意,但这应该可以帮助您入门。可以找到更多信息here