Automated tests 不带注释的组testNG测试

Automated tests 不带注释的组testNG测试,automated-tests,grouping,testng,Automated Tests,Grouping,Testng,我负责允许对其中一个ETL组件进行单元测试。我想使用testNG和通用java测试类以及testNG.xml中的测试定义(通过向类传递各种参数)来完成这项工作。Oracle和ETL人员应该能够在不更改java代码的情况下添加新的测试,因此,我们需要使用xml套件文件而不是注释 问题: 有没有一种方法可以在testng.xml中对测试进行分组?类似于如何使用注释进行分组 我是说 <group name="first_group"> <test> <clas

我负责允许对其中一个ETL组件进行单元测试。我想使用testNG和通用java测试类以及testNG.xml中的测试定义(通过向类传递各种参数)来完成这项工作。Oracle和ETL人员应该能够在不更改java代码的情况下添加新的测试,因此,我们需要使用xml套件文件而不是注释

问题:

有没有一种方法可以在testng.xml中对测试进行分组?类似于如何使用注释进行分组 我是说

<group name="first_group">
   <test>
   <class ...>
   <parameter ...>
   </test>
</group>

<group name="second_group">
 <test>
   <class ...>
   <parameter ...>
   </test>
</group>
我已经检查了testng.dtd,发现类似的语法是不允许的。但是有允许分组的解决方法吗

提前感谢

您可以在testng.xml中指定,然后使用-groups运行testng


不,这在目前是不可能的

根据经验,我不喜欢在XML中添加指向Java代码的信息,因为重构可能会悄悄地破坏整个构建

例如,如果重命名方法或类名,测试可能会神秘地开始中断,直到您记住还需要更新XML

请随意在testng用户邮件列表中列出,我们可以看看是否有人对这一特性感兴趣

-


Cedric

谢谢,Brian。但这不是我想要的:我可以在单个元组中聚合组,而我需要在元组中对类进行分组。回到您的示例,问题是如何将特定的测试而不是其他组添加到每个brokenTests和checkinTest GroupsHanks,Cedric.是否存在允许在java代码之外进行测试分组的变通方法?目前,我能想到的最有吸引力的方法是为每个组创建xml测试套件。我在列表中建议了一种变通方法,我将在这里重复:您可以自己做一个预测试任务:实现一个代码生成器,以XML形式获取信息,获取相应的Java源文件,并生成一个TestNG源文件,其中所有注释都放在正确的位置。然后在该文件上运行TestNG。
<test name="Regression1">
  <groups>
    <run>
      <exclude name="brokenTests"  />
      <include name="checkinTests"  />
    </run>
  </groups>
  ....