【问题标题】:Eclipse JUnit4: exclude tests using a name patternEclipse JUnit4:使用名称模式排除测试
【发布时间】:2010-03-03 14:29:56
【问题描述】:

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

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

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

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

  • 你的项目/测试
  • 你的项目/集成测试

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

我正在使用:

  • Eclipse 3.5
  • JUnit 4

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

【问题讨论】:

    标签: eclipse junit


    【解决方案1】:

    您可以扩展套件类,覆盖

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

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

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

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

    【讨论】:

    • 什么是 IgnoreSuite.class?我搜索了网络,您的答案是唯一提到过的地方。
    猜你喜欢
    • 1970-01-01
    • 2017-10-02
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多