繁体   English   中英

如何创建 JUnit 运行/调试配置以在 IntelliJ IDEA 中运行套件

[英]How to create a JUnit Run/Debug Configuration for running a Suite in IntelliJ IDEA

我有一个 Java 项目,它根据测试类别定义测试套件,并希望创建 JUnit(版本 4.12)运行/调试配置以在 IntelliJ IDEA Ultimate 2019.2 中执行特定测试套件

测试类别/套件定义如下所示:

public class TestCategories {
    public interface ResourceTest {}

    @RunWith(Categories.class)
    @Categories.IncludeCategory(ResourceTest.class)
    @Suite.SuiteClasses(AllTests.class)
    public static class ResourceTestSuite {}

    @RunWith(Categories.class)
    @Categories.ExcludeCategory({ResourceTest.class})
    @Suite.SuiteClasses(AllTests.class)
    public static class UnitTestSuite {}

    @RunWith(ClasspathSuite.class)
    @ClasspathSuite.SuiteTypes({SuiteType.RUN_WITH_CLASSES, SuiteType.TEST_CLASSES, SuiteType.JUNIT38_TEST_CLASSES})
    public static class AllTests {}
}

这作为常春藤依赖项被拉入我的项目,我无法更改它。 我的项目中的示例测试 class 可能如下所示:

public class TestClass {
    @Test
    @Category(ResourceTest.class)
    public void resourceTest() { ... }

    @Test
    public void unitTest() { ... }
}

我可以创建一个 JUnit 运行/调试配置,通过将测试类型设置为“类别”并将类别设置为“com.mjames.test.category.TestCategories$ResourceTest”,成功执行 ResourceTest 类别:运行/调试配置

我尝试使用测试类型类别、模式和 Class 来执行 ResourceTestSuite,但没有让它工作。 在 ResourceTestSuite 的情况下,它并不是非常重要,因为执行 ResourceTest 类别是等效的,但是 UnitTestSuite 的定义是所有不在 ResourceTest 类别中的测试。 如何创建运行/调试配置来执行该测试套件?

这是对我运行ResourceTestSuite正确的运行配置在此处输入图像描述

至于第二种情况:如果AllTests class 和UnitTestSuite class 本身带有@Category(ResourceTest.class)注释,则UnitTestSuite将运行。 否则测试执行将失败,异常如下:

java.lang.Exception: class 'pack.AllTests' (possibly indirectly) contains itself as a SuiteClass

您也可以尝试使用@Suite.SuiteClasses(TestClass.class)运行UnitTestSuite

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM