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

时间:2010-03-03 14:29:57

标签: eclipse junit

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

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

我对创建(和维护)Test Suites不感兴趣。

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

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

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

我正在使用:

  • Eclipse 3.5
  • JUnit 4

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

1 个答案:

答案 0 :(得分:2)

您可以扩展套件类,覆盖

public Suite(Class klass, RunnerBuilder builder) throws InitializationError {
    this(builder, klass, getAnnotatedClasses(klass));
}

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

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

@RunWith(IgnoreSuite.class)
@IgnoreTests("integration")
public class NormalTests {
}