当前位置: 首页 > 知识库问答 >
问题:

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

公冶同
2023-03-14

我有一个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 {}
}

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

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

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

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

我曾尝试使用测试类类别、模式和类来执行ResourceTestSuite,但没有成功。在ResourceTestSuite的情况下,这并不十分重要,因为执行ResourceTest类别是等效的,但UnitTestSuite的定义是所有不在ResourceTest类别中的测试。如何创建运行/调试配置以执行该测试套件?

共有1个答案

景修杰
2023-03-14

对于第二种情况:如果AllTest类和UnitTestSuite类本身用@类别(ResourceTest.class)注释,则UnitTestSuite将运行。否则测试执行将失败,异常情况如下:

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

您还可以尝试使用UnitTestSuite运行UnitTestSuite。SuiteClasses(TestClass.class)

 类似资料:
  • 问题内容: 我想开始为我的Python代码编写单元测试,而py.test框架听起来比Python捆绑的unittest更好。因此,我在项目中添加了“ tests”目录,并在其中添加了test_sample.py。现在,我想配置PyCharm以运行“ tests”目录中的所有测试。 据称,PyCharm在其测试运行程序中支持py.test。您应该能够创建运行/调试配置来运行测试,并且PyCharm据

  • 打开运行和调试配置的方法: 菜单栏: Run —> Edit Configurations... 快捷键: Mac: control + alt + R Windows/Linux: Alt + Shift + F9 —> 0 工具栏: 点击Edit Configurations... 然后弹出配置界面: Defaults列出了所有默认的配置, 点击 + 按钮可以新建一个新的Android启动/调

  • 问题内容: 如何从命令行运行Junit 4.8.1测试套件?另外,我想使用JUnit 4.8引入的类别,有没有一种方法可以从命令行指定要运行的类别。 问题答案: 从4.8开始,无法从命令行指定类别。

  • 请让我知道是否可以通过TestNG运行并行套件?

  • 问题内容: 在eclipse中,使用JUnit 4,您可以右键单击项目或包,然后单击“以JUnit Test身份运行”,它将运行该组中的所有JUnit测试。有没有办法在代码中执行相同的操作? 问题答案: 您可以在junit中使用诸如JUnitCore之类的软件包,如下所示:

  • 问题内容: 我正在使用JUnit 4.4和Maven,并且有大量的长时间运行的集成测试。 关于并行化测试套件,有一些解决方案可以让我在单个测试类中并行运行每个测试方法。但是所有这些都要求我以一种或另一种方式更改测试。 我真的认为,在X线程中并行运行X个不同的测试类将是一种更干净的解决方案。我有成百上千的测试,所以我真的不在乎线程测试类。 问题答案: 使用Maven插件: