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

holgip5t  于 2021-06-30  发布在  Java
关注(0)|答案(6)|浏览(377)

我有一个包含大量方法的testng套件。我使用构建在testngrunner之上的 Package 器来执行这个套件。套件中的所有测试都失败,只有一个例外。我应该在testng.xml中编写什么来执行一个失败的测试?
显而易见的解决方案是为所有方法分配唯一的组名,然后在testng.xml中指定名称。在2-3种方法的情况下,这是可行的,但随着测试数量的增加,它变得越来越困难。

lymgl2op

lymgl2op1#

在程序中选择测试方法并进入顶部菜单“run”->“run”,或者按ctrl+f11,这将独立于xml测试套件启动测试。

jecbmhm3

jecbmhm32#

有几种方法可以做到这一点。
您使用eclipse进行开发吗?testng有一个eclipse插件,我认为这是目前为止运行特定测试最简单的方法。该插件允许您运行可用测试的套件、组、类或方法。
如果没有,我相信您可以设置一个ant任务来启动测试(http://testng.org/doc/ant.html)并使用“classfilesetref”等属性提供要运行的测试的列表。您可以在单独的文件中指定测试,这样就不必每次运行测试时都更新build.xml。
安装testng plugin.只需遵循以下步骤:1-进入eclipse中的“帮助”菜单。2-选择“安装新软件”。3-添加“http://beust.com/eclipse."
它在您指定的错误的情况下工作,我认为您没有在EclipseIDE中安装插件

siotufzp

siotufzp3#

每次运行之后,testng都会创建一个名为testng-failed.xml的文件,其中只包含失败的测试。只需在该文件上再次调用testng:
java org.testng.testng testng.xml java org.testng.testng testng-failed.xml
(将org.testng.testng替换为您自己的runner,因为您似乎使用定制的runner)。

nhjlsmyf

nhjlsmyf4#

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

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

aamkag615#

试试这个:

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

x6492ojm6#

您还可以创建自己的itestlistener(因为您已经有了自己的 Package 器)来跟踪失败,然后从中生成自己的失败套件文件,其中只包含失败的测试。testng的侦听器/拦截器挂钩相当不错。在工作中,我们通过以下几种方式扩展了testng:
捕获/回放生成的数据集
结果记录到数据库
自定义测试输出(日志)
由@dataprovider提供的数据集的元数据,如id、描述
测试用例的环境相关限制的运行时检查

相关问题