【问题标题】:Cannot include/exclude Junit tests classes by Category using gradle无法使用 gradle 按类别包含/排除 Junit 测试类
【发布时间】:2016-08-10 11:36:56
【问题描述】:

鉴于这些接口

testclient.priority.High
testclient.priority.Low

还有一个像这样注释的junit类

@Category(testclient.priority.High.class)
public class MyTest {
...
}
@Category(testclient.priority.Low.class)
public class MyOtherTest {
...
}

我尝试像这样在 build.gradle 中配置包含/排除模式

useJUnit {
    includeCategories 'testclient.priority.High'
    excludeCategories 'testclient.priority.Low'
}

问题在于根本没有运行测试。实现这一目标的确切语法是什么? 我正在使用 gradle 2.14.1 并通过“干净构建”调用测试。

【问题讨论】:

    标签: java gradle junit build.gradle junit4


    【解决方案1】:

    这适用于 Gradle 2.12。我不知道我们各自的环境有什么不同,但我已经放置了my solution on GitHub以供参考。

    请注意,我已将 FastTest.javaSlowTest.java 放在测试所在的 src/test/java/net/codetojoy 文件夹中。

    【讨论】:

    • 谢谢。我检查了所有内容,我的设置(依赖项、存储库、应用插件)与您的示例相同。我能看到的唯一区别是 gradle 版本。
    【解决方案2】:

    我自己发现了问题。我错过了一个事实,

    High extends Low
    

    所以排除正确地影响了所有带注释的测试。扩展是有意的,而 build.gradle 中的正确模式只是:

    useJUnit {
        includeCategories 'testclient.priority.High'
    }
    

    事实上,有五个优先级,扩展依赖是一种简单的配置方式,例如“运行此级别或更高级别的所有内容”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 2012-09-11
      相关资源
      最近更新 更多