JUnit5:指定嵌套测试的执行顺序

JUnit 5: Specify execution order for nested tests(JUnit5:指定嵌套测试的执行顺序)

本文介绍了JUnit5:指定嵌套测试的执行顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以以固定的执行顺序在某些其他测试之间执行多个嵌套测试?

例如

@TestInstance(Lifecycle.PER_CLASS)
@TestMethodOrder(OrderAnnotation.class)
class MyTest {

    private State state = State.ZERO;

    @Test
    @Order(1)
    public void step1() throws IOException {
        state = State.ONE;
    }

    @Order(2)  // sth like this, however this annotation isn't allowed here
    @Nested
    class WhileInStateOne {

        @Test
        public void step2a {
            Assumptions.assumeTrue(state == State.ONE);

            // test something
        }

        @Test
        public void step2b {
            Assumptions.assumeTrue(state == State.ONE);

            // test something else
        }

    }

    @Test
    @Order(3)
    public void step3() throws IOException {
        state = State.THREE;
    }

}

我知道,单元测试通常应该是无状态的,但是在这种情况下,如果我可以按固定顺序重用状态,我可以节省大量执行时间。

推荐答案

否。嵌套类中的测试始终在封闭类中的测试之后执行。这是无法更改的。

测试方法的排序仅适用于单个测试类中的方法。

这篇关于JUnit5:指定嵌套测试的执行顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:JUnit5:指定嵌套测试的执行顺序

基础教程推荐