【问题标题】:Run all tests except for a JUnit Category in IntelliJ在 IntelliJ 中运行除 JUnit 类别之外的所有测试
【发布时间】:2017-12-09 07:35:29
【问题描述】:

我几乎只将 JUnit 类别用于我不想作为测试套件的一部分运行的非单元测试。在 NUnit 中我可以使用 Explicit,但我发现在 JUnit 中唯一可比较的是类别。在 gradle 中,排除类别很简单,但我不知道如何使用 IntelliJ 的测试运行程序来做到这一点。我知道如何运行属于某个类别的测试,但不知道如何排除它们。

【问题讨论】:

  • 我认为 IntelliJ 的内置测试运行器不够智能,无法自行处理。是否考虑过将该操作委托给 Gradle?
  • 当我需要这样做时,特别是不要使用gradle,例如故障排除、调试
  • 例如,有一些 bug 表现为 gradle 测试运行器静默失败或无限期挂起。使用 GUI 更容易定位问题
  • 您可以在调试配置中为测试指定类别:jetbrains.com/help/idea/run-debug-configuration-junit.html 但是,似乎无法排除类别。
  • @Pieter De Bie 谢谢,我是 cmets 的参与者之一。我已经切换到始终使用 Gradle 运行测试,它通过自定义测试任务支持该场景。

标签: unit-testing intellij-idea junit


【解决方案1】:

自从我问这个问题以来已经过去了一段时间,那时 Gradle 测试运行器已成为默认运行器(至少对我而言)。所以虽然内置的 runner 可能没有这个功能,但是你可以很容易地创建一个排除类别或标签的 gradle 任务:

test {
    useJUnitPlatform {
        excludeTags 'integrationTest'
        excludeTags 'endToEndTest'
        excludeTags 'testDriver'
    }
    options {
        exclude '**/*Integration*'
        exclude 'integrationTest'
        exclude 'endToEndTest'
        exclude 'testDriver'
    }

}

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多