java - JUnit 5:指定嵌套测试的执行顺序
问题描述
是否可以在其他一些测试之间以固定的执行顺序执行多个嵌套测试?
例如
@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;
}
}
我知道,单元测试通常应该是无状态的,但是在这种情况下,如果我可以按固定顺序重用状态,我可以节省大量执行时间。
解决方案
不会。嵌套类中的测试总是在封闭类中的测试之后执行。这是无法改变的。
测试方法的排序仅适用于单个测试类中的方法。
推荐阅读
- android - 列表视图可以处理太多项目吗?
- flask - 烧瓶 - 数据库条目的简单删除 - 缺少位置参数
- c# - 如何在 MSTests 中忽略
- javascript - 当 catch 返回错误时重新启动 then() 块
- vue.js - 如何使用两个 v-navigation-drawer?
- c++ - 由于内存映射,无法处理视频或 Videopath
- python - 基于Django函数的视图分页不起作用
- angular - 在 nz-row 和 nz-col 上构建和服务失败
- android - telnet 可以用来在通过 USB 连接的真实 android 设备上设置 gps 位置吗?
- javascript - 如何检查是否仅使用 JavaScript 选择了单选按钮?