Unit testing Maven/JUnit—让旧的静态套件JUnit技术在Maven中工作

Unit testing Maven/JUnit—让旧的静态套件JUnit技术在Maven中工作,unit-testing,junit,maven,test-suite,Unit Testing,Junit,Maven,Test Suite,我正在将一个项目从Ant切换到Maven。我将单元测试放在了正确的位置,但无论出于何种原因,maven surefire插件只能看到大约136个(总共1136个)测试 使用Ant时,我们使用了较旧的测试套件技术: public class GatherTests{ public static Test suite(){ ... add tests ... return testSuite; } } 作为我们的跑步者。我无法确定如何使用Surefire使其工作。我将JUn

我正在将一个项目从Ant切换到Maven。我将单元测试放在了正确的位置,但无论出于何种原因,maven surefire插件只能看到大约136个(总共1136个)测试

使用Ant时,我们使用了较旧的测试套件技术:

public class GatherTests{
  public static Test suite(){
    ... add tests ...
    return testSuite;
  }
}
作为我们的跑步者。我无法确定如何使用Surefire使其工作。我将JUnit3.8.1与Maven 2.0一起使用。有人知道这是否可能吗?我试过的一件事是:

-Dtest=GatherTests
没有运气。我们的许多测试都存在于不会立即从junit.framework.TestCase继承的类中,所以这可能就是surefire在收集测试时遇到问题的原因。我现在将查看日志,看看它缺少什么

谢谢
蒂姆

当然,我在发布这篇文章后不久就明白了

上面写着:

默认情况下,Surefire插件将自动包含具有以下通配符模式的所有测试类:

  • “*/Test.java”-包括其所有子目录和以“Test”开头的所有java文件名
  • “***Test.java”-包括其所有子目录和以“Test”结尾的所有java文件名
  • “***TestCase.java”-包括其所有子目录和以“TestCase”结尾的所有java文件名

未运行的测试与模式**/*tests.java匹配。我添加了一个包含规则,它们现在都在运行

我进一步研究了它,它跳过了直接扩展TestCase的测试。它总是跳过相同的部分,但它们似乎与所包含的其他部分没有什么不同。我注意到,如果一个包包含多个单元测试类,那么surefire只运行其中一个。但是,将跳过仅包含一个类的其他包。