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

Posted

技术标签:

【中文标题】如何使用 testng.xml 从大型 TestNG 套件执行一项测试?【英文标题】:How to execute one test from large TestNG suite using testng.xml? 【发布时间】:2010-12-12 23:01:07 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

  <classes>
    <class name="test.IndividualMethodsTest">
      <methods>
        <include name="testMethod" />
      </methods>
    </class>
  </classes>

【讨论】:

【参考方案2】:

试试这个:

  <classes>
    <class name="test.IndividualMethodsTest">
      <methods>
        <exclude name="testMethod" />
      </methods>
    </class>
  </classes>

【讨论】:

只执行一个【参考方案3】:

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

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

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

【讨论】:

不敢相信,Beust 自己回答了!!【参考方案4】:

您还可以创建自己的ITestListener(因为无论如何您都有自己的包装器)来跟踪故障,然后从中生成您自己的故障套件文件,其中仅包含失败的测试。 TestNG 的监听器/拦截器钩子非常好。在工作中,我们使用多种方式扩展了 TestNG:

捕获/回放生成的数据集 将结果记录到数据库中 自定义测试输出(日志) @DataProvider 提供的数据集的元数据,例如 ID、描述 对测试用例的环境相关限制进行运行时检查

【讨论】:

【参考方案5】:

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

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

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

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

如果您指定的错误我认为您没有在 Eclippse IDE 中安装插件,它可以工作

【讨论】:

第一个选项不可用 - 我正在使用包装器,构建在 TestNG 运行器之上来启动测试。 Eclipse 不会捕获由我的包装器执行的测试结果。感谢您的第二个选项 - 我会尝试的。【参考方案6】:

在程序中选择测试方法并进入顶部菜单“运行”->“运行”,或者按CTRL + F11,这将独立于XML测试套件开始测试。

【讨论】:

以上是关于如何使用 testng.xml 从大型 TestNG 套件执行一项测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Maven 命令行运行 testng.xml

如何使用 maven mvn test 命令行运行动态 testng.xml?

如何使用 Eclipse 创建“testng.xml”

如何使用 testng.xml 运行测试文件

如何使用 testng.xml 和 beanshell 设置系统属性

TestNG:如何以编程方式运行自定义 TestNG.XML 文件