如何在TestNG中排除类?

use*_*170 12 testng

这可以排除testng.xml中的类吗?

我试过了

<packages>
    <package exclude="com.tt.ee"/>
</packages>
Run Code Online (Sandbox Code Playgroud)

但它给出了错误.

art*_*nil 8

根据TestNG dtd,该exclude元素仅适用于以下元素:

  • package - 包列表中的包描述.
  • methods - 要包含/排除此测试的方法列表.
  • run - 用于定义应运行哪些组的组的子标签.

元素classesclass不能直接排除; 但是,您可以通过组排除类:

@Test(groups = { "ClassTest1" })
public class Test1 {

  public void testMethod1() {
  }

  public void testMethod2() {
  }

}
Run Code Online (Sandbox Code Playgroud)

然后你将定义testng.xml:

<suite>
  <test>
    <groups>
      <run>
        <exclude name="ClassTest1"/>
      </run>
    </groups>
    <classes>
      <class name="Test1">
    </classes>
  </test> 
</suite>
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,您可以定义要包含在运行中的类,而不是排除,因此只需包含要运行的类.


Tar*_*ken 7

它的工作原理如下:

<packages>
    <package name="some.package">
        <exclude name="some.package.to.exclude"></exclude>
    </package>
</packages>
Run Code Online (Sandbox Code Playgroud)

name属性中,提供包名称.

注意:在TestNG 6.14.3中,您不能排除<classes>XML标记中的类.


use*_*348 5

如果您使用 xml 文件 (testng.xml) 来定义套件,并且自 TestNG 6.14.3 起,您无法排除 XML 标记中的类,则排除包内特定类的方法如下:

<suite name="suite-name" >
<test name="test-name">
    <packages>
        <package name="ab.cd.ef.*"/>
    </packages>
    <classes>
        <class
            name="ab.cd.ef.ClassToBeExcluded">
            <methods>
                <exclude name=".*" />
            </methods>
        </class>
    </classes>
</test>
Run Code Online (Sandbox Code Playgroud)

实际上,不是排除类(dtd 不允许),而是排除类的所有方法。