junit - 检测 Junit 测试类是在套件中运行还是单独运行

标签 junit

我有一些代码需要在我的测试类(class)之前和之后运行。中间运行多少个测试类无关紧要,它必须为整个集合运行一次且仅运行一次。

当我在一个套件中运行时,它会在整个套件的开头和结尾被调用,这按预期工作,但是,我希望能够运行单个测试类。在这种情况下,测试类需要检测到它是单独运行并启动前/后测试代码。

这可能吗?

最佳答案

我这样解决了这个问题:

MySuite 我添加了这个:

    public static Boolean suiteRunning = false;
    @ClassRule
    public static ExternalResource triggerSuiteRunning = new ExternalResource() {
      @Override
      protected void before() throws Throwable {
        suiteRunning = true;
      }
    };

现在,在依赖测试中,我知道套件是否正在运行并且可以禁用测试:

    @BeforeClass
    public static void beforeClass() {
        Assume.assumeTrue(MySuite.suiteRunning);
    }
    // --- or ---
    @Test
    public static void test() {
        Assume.assumeTrue(MySuite.suiteRunning);
    }

关于junit - 检测 Junit 测试类是在套件中运行还是单独运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945059/

相关文章:

java - Spring MVC Junit 测试 ApplicationContext 配置

java - JUnit 3 是否有类似于@BeforeClass 的东西?

java - Spring 4 - 对象不会 Autowiring 变量

java - 从 Eclipse 导出的 JAR 中排除 JUnit

unit-testing - 在 Quarkus 中执行端点单元测试的最佳方法是什么?

java - JPA 插入 + Oracle 序列和带有 H2 的 Junit

java - JUnit RemoteTestRunner NoClassDefFoundError Junit4 Eclipse 3.7.2

java - 如何在单元测试环境中使用抛出异常的 PowerMock 来模拟 Java 静态类初始化器

java - 有没有办法自动化 junit bean 属性测试?

java - 如何使用reflectionEquals检查2个对象中的所有字段是否相等?