Unit testing 在IntelliJ中运行除JUnit类别之外的所有测试

Unit testing 在IntelliJ中运行除JUnit类别之外的所有测试,unit-testing,intellij-idea,junit,Unit Testing,Intellij Idea,Junit,我几乎只对我不想作为测试套件的一部分运行的非单元测试使用JUnit类别。在NUnit中,我可以使用显式,但我发现在JUnit中唯一可以比较的是类别。在gradle中,排除一个类别很简单,但我不知道如何使用IntelliJ的test runner做到这一点。我看到了如何运行属于某个类别的测试,但没有看到如何排除它们。自从我提出这个问题以来,已经过了一段时间,在这段时间里,Gradle测试运行程序已经成为默认的(至少对我来说)。因此,尽管内置的runner可能没有此功能,但您可以轻松创建一个排除类别

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

自从我提出这个问题以来,已经过了一段时间,在这段时间里,Gradle测试运行程序已经成为默认的(至少对我来说)。因此,尽管内置的runner可能没有此功能,但您可以轻松创建一个排除类别或标记的gradle任务:

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

}

我认为IntelliJ的内置测试运行程序不够智能,无法自行处理此问题。曾经考虑过把这个动作委托给Gradle吗?当我需要这么做的时候,它特别是不使用Gealle,例如故障排除,调试,例如,有bug显示为平缓的测试者,要么默默地失败,要么无限期地悬挂。用GUI指出问题要容易得多。您可以在调试配置中为测试指定一个类别:但是,似乎无法排除类别。@Pieter De Bie谢谢,我是评论的参与者之一。我已经切换到始终使用Gradle来运行测试,它通过自定义测试任务支持场景。