在JUnits TestsSuite之前运行的代码或专门设置将首先执行和最后执行的测试的代码。 (仅第一和最后,并非全部)

时间:2019-04-26 14:25:02

标签: java junit

我一直在寻找类似的东西,但是我发现的全部是固定测试顺序或完全随机的。

我有这种测试结构:

// imports

@RunWith(Suite.class)

@Suite.SuiteClasses({
        // Tests
})

public class TestRunSuite {
}

以及我想做什么:

// imports

@RunWith(Suite.class)

@Suite.SuiteClasses({
        testToExecuteFirst.class,
        // Tests in random order
        testToExecuteLast.class
})

public class TestRunSuite {
}

有没有办法让TestSuite在2个函数中间执行? 我是什么意思:

authentificationSetUp();
// somehow calling TestRunSuite
authentificationSetUpBack();

我要执行此操作的原因是,我需要更改一个网站上的身份验证超时,但事实是,我需要以管理员身份登录并且测试是否适用于其他角色。因此,与其进行所有这些测试,而不是将这2个测试分别放入@BeforeClass和@AfterClass,都是如此。

1 个答案:

答案 0 :(得分:1)

您可以在TestRunSuite类中简单地添加一个@BeforeClass方法和一个@AfterClass方法。

@RunWith(Suite.class)
@Suite.SuiteClasses({
        // Tests
})

public class TestRunSuite {

    @BeforeClass
    public void authentificationSetUp() {
        //Your code
    }

    @AfterClass
    public void authentificationSetUpBack() {
        //Your code
    }

}