Eclipse JUnit4:使用名称模式排除测试

Mac*_*łas 7 eclipse junit

是否可以在Eclipse的JUnit Run配置中指定一个名称模式(比如**/integration/*Test),在运行项目的所有测试时应该从测试运行中排除?

查看运行/调试配置中的选项我认为这个问题可以简化为:是否可以根据junit runner命令行参数排除某些测试.

我对创建(和维护)测试套件不感兴趣.

另一种替代解决方案(尽管对此仍然不感兴趣)是创建包含测试文件的单独目录:

  • yourProject /测试
  • yourProject /集成的测试

并选择该目录以运行其中的所有测试(或更改"运行配置"的"测试"选项卡中的"在所选项目,包或源文件夹中运行所有测试").

我正在使用:

  • Eclipse 3.5
  • JUnit 4

任何提示/建议非常感谢!

IAd*_*ter 2

您可以扩展 Suite 类,覆盖

public Suite(Class klass, RunnerBuilder builder) throws InitializationError {
    this(builder, klass, getAnnotatedClasses(klass));
}
Run Code Online (Sandbox Code Playgroud)

但不是带注释的类返回您想要的类。我打赌有很多方法可以做到这一点,但我会扫描类路径中的类文件夹,找到其中的所有测试类并忽略您不喜欢的类。Class.forName 会将名称转换为类。

你甚至可以做 jUnit4 风格的注释

@RunWith(IgnoreSuite.class)
@IgnoreTests("integration")
public class NormalTests {
}
Run Code Online (Sandbox Code Playgroud)

  • 什么是 IgnoreSuite.class?我在网上搜索过,你的答案是唯一提到过的地方。 (2认同)