我有一个包含大量方法的 TestNG 套件。我使用构建在 TestNG runner 之上的包装器来执行这个套件。套件中的所有测试都失败了,除了一个。我应该在 testng.xml 中写什么来执行那个失败的测试?
明显的解决方案是为所有方法分配唯一的组名,然后在 testng.xml 中指定名称。这可以在 2-3 种方法的情况下工作,但随着测试数量的增加,它变得越来越难。
我有一个包含大量方法的 TestNG 套件。我使用构建在 TestNG runner 之上的包装器来执行这个套件。套件中的所有测试都失败了,除了一个。我应该在 testng.xml 中写什么来执行那个失败的测试?
明显的解决方案是为所有方法分配唯一的组名,然后在 testng.xml 中指定名称。这可以在 2-3 种方法的情况下工作,但随着测试数量的增加,它变得越来越难。
而不是exclude
,您可以使用include
. 这正是你想要的。只有这个测试将被执行。
<classes>
<class name="test.IndividualMethodsTest">
<methods>
<include name="testMethod" />
</methods>
</class>
</classes>
尝试这个:
<classes>
<class name="test.IndividualMethodsTest">
<methods>
<exclude name="testMethod" />
</methods>
</class>
</classes>
每次运行后,TestNG 都会创建一个名为 testng-failed.xml 的文件,其中仅包含失败的测试。只需在该文件上再次调用 TestNG:
java org.testng.TestNG testng.xml java org.testng.TestNG testng-failed.xml
(将 org.testng.TestNG 替换为您自己的跑步者,因为您似乎使用的是自定义跑步者)。
您还可以创建自己的ITestListener(因为无论如何您都有自己的包装器)来跟踪故障,然后从中生成您自己的故障套件文件,其中仅包含失败的测试。TestNG 的监听器/拦截器钩子非常好。在工作中,我们使用多种方式扩展了 TestNG:
有几种方法可以做到这一点。
您是否使用 Eclipse 进行开发?TestNG 有一个 Eclipse 插件,我认为这是迄今为止运行特定测试的最简单方法。该插件允许您运行可用测试的套件、组、类或方法。
如果没有,我相信您可以设置一个 ant 任务来启动测试(http://testng.org/doc/ant.html)并使用“classfilesetref”之类的属性来提供要运行的测试列表。您可以在单独的文件中指定测试,这样您就不必每次运行测试时都更新 build.xml。
安装 testng 插件。只需按照以下步骤操作: 1-转到 Eclipse 中的“帮助”菜单。2-选择“安装新软件”。3-添加“ http://beust.com/eclipse。”
它适用于您指定的错误我认为您没有在 Eclippse IDE 中安装插件
选择程序中的测试方法并转到顶部菜单“运行”->“运行”,或按 CTRL + F11 ,这将独立于 XML 测试套件启动测试。