如何使用testng.xml从大型TestNG套件执行一个测试?

Sad*_*per 19 java testng unit-testing

我有一个包含大量方法的TestNG套件.我使用构建在TestNG运行程序之上的包装器来执行此套件.套件中的所有测试都会失败,除了一个.我应该在testng.xml中写什么才能执行那个失败的测试?

明显的解决方案是为所有方法分配唯一的组名,然后在testng.xml中指定名称.这可以在2-3种方法的情况下使用,但随着测试数量的增加,它会变得更难.

小智 23

而不是exclude,你可以使用include.这正是你想要的.只会执行此测试.

  <classes>
    <class name="test.IndividualMethodsTest">
      <methods>
        <include name="testMethod" />
      </methods>
    </class>
  </classes>
Run Code Online (Sandbox Code Playgroud)


Pie*_*din 7

试试这个:

  <classes>
    <class name="test.IndividualMethodsTest">
      <methods>
        <exclude name="testMethod" />
      </methods>
    </class>
  </classes>
Run Code Online (Sandbox Code Playgroud)

  • 或&lt;include name =“ testMethod” /&gt;仅执行一个 (2认同)

Ced*_*ust 6

每次运行后,TestNG会创建一个名为testng-failed.xml的字段,该字段仅包含失败的测试.只需在该文件上再次调用TestNG:

java org.testng.TestNG testng.xml java org.testng.TestNG testng-failed.xml

(将org.testng.TestNG替换为您自己的跑步者,因为您似乎使用自定义的跑步者).

  • 不敢相信,Beust 自己回复的答案!! (4认同)

bli*_*ool 1

有几种方法可以做到这一点。

您使用 Eclipse 进行开发吗?TestNG 有一个 Eclipse 插件,我认为这将是迄今为止运行特定测试的最简单方法。该插件允许您运行可用测试的套件、组、类或方法。

如果没有,我相信您可以设置一个 ant 任务来启动测试(http://testng.org/doc/ant.html)并使用“classfilesetref”等属性来提供要运行的测试列表。您可以在单独的文件中指定测试,这样就不必在每次运行测试时都更新 build.xml。

要安装 testng 插件,只需按照以下步骤操作: 1-转到 Eclipse 中的“帮助”菜单。2-选择“安装新软件”。3-添加“ http://beust.com/eclipse ”。

它可以在您指定的错误的情况下工作我认为您没有在 Eclippse IDE 中安装该插件