Java testng:为什么我不能基于组运行测试

Java testng:为什么我不能基于组运行测试,java,intellij-idea,testng,Java,Intellij Idea,Testng,我想启动所有集成测试(group=inttest),因此我编写了以下xml配置: <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Service Integration Test" parallel="none"> <test verbose="1" name="Service Integration Test"> <groups>

我想启动所有集成测试(group=inttest),因此我编写了以下xml配置:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Service Integration Test" parallel="none">
  <test verbose="1" name="Service Integration Test">
    <groups>
      <run>
        <include name="inttest.*"/>
      </run>
    </groups>   
  </test>
</suite>

但是当从intellij运行时,不会运行任何测试。 如果我添加这样的“类”部分:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Service Integration Test" parallel="none">
  <test verbose="1" name="Service Integration Test">
    <groups>
      <run>
        <include name="inttest.*"/>
      </run>
    </groups> 

   <classes>
     <class name="com.service.MyTestClass" />
   </classes>  
  </test>
</suite>

然后运行com.service.MyTestClass类中包含的组“inttest.*”的所有测试


问题出在哪里?

正如您正确地发现的那样,您需要告诉TestNG它应该查找哪些类才能找到您指定的组

如果愿意,还可以指定整个包


至于为什么要运行所有的测试方法,我需要看一下这个类以了解发生了什么。也许您通过在类级别指定@test注释使所有测试方法都属于“inttest”组?

谢谢Cedric。我已经解决了关于“所有测试方法都已运行”的问题。指定类时,将按预期启动具有选定组的测试。对于软件包,我应该在尝试使用此功能时出错。它工作得很好。我对组特性的期望太高了:我想如果没有任何包或类,整个代码库都会被用来寻找组匹配。。。