为什么某些JUnit测试不能在NetBeans和/或Hudson中执行?

为什么某些JUnit测试不能在NetBeans和/或Hudson中执行?,netbeans,junit,hudson,Netbeans,Junit,Hudson,当我右键单击NetBeans中的项目并选择Test时,某些单元测试没有运行。如果我右键单击包含单元测试的.java文件并选择TestFile,那么单元测试将运行。此外,我在Hudson CI中有这个项目,这些相同的单元测试不会运行。只有以项目中带有后缀Test的类命名的类中的测试才会执行。例如,单元测试类FootTests中的测试永远不会运行(后缀并不完全是测试)。仅当项目具有名为Foo的类时,单元测试类FooTest中的测试才会运行 很高兴知道为什么会这样 编辑:我最初的诊断仅部分正确。我发现

当我右键单击NetBeans中的项目并选择Test时,某些单元测试没有运行。如果我右键单击包含单元测试的.java文件并选择TestFile,那么单元测试将运行。此外,我在Hudson CI中有这个项目,这些相同的单元测试不会运行。

只有以项目中带有后缀Test的类命名的类中的测试才会执行。例如,单元测试类FootTests中的测试永远不会运行(后缀并不完全是测试)。仅当项目具有名为Foo的类时,单元测试类FooTest中的测试才会运行

很高兴知道为什么会这样


编辑:我最初的诊断仅部分正确。我发现这解释了这是一个NetBeans/JUnit问题。运行测试的NetBeans ant目标仅在与掩码:*Test.java匹配的所有文件中查找测试。您可以在nbproject文件夹中build-impl.xml中的-do测试运行目标中看到这一点。因此,您只需确保所有单元测试类都以后缀test结尾,就可以了。

在我看来,这是因为您的测试应该针对每个类。JUnit的测试方法是,每个应用程序类都有一个相应的类来测试它。这就是你看到的行为。经过进一步的研究,实际上每个类都有相应的测试类并不重要。有关解释,请参见答案中的“我的编辑”。