JUnit 测试未按顺序 运行

JUnit tests not running in order

我正在使用 JUnit 5 来​​测试 DynamoDB,我有一个用 @BeforeAll 注释的设置方法,我在其中插入 3 个项目到数据库中,一个用 @AfterAll 注释在所有操作之后删除数据库中的项目测试有 运行.

@Test
@Order(1)
public void addNewCar() {
    repository.save(new Car("d"));

    assertThat(repository.count()).isEqualTo(4);
}

我先插入一个新项目,然后删除一个项目:

@Test
@Order(2)
public void deleteCar() {
    repository.deleteById("a");

    assertThat(repository.count()).isEqualTo(2);
}

但是,第一个测试失败了(计数是 3 而不是 4),因为在测试 2 中删除的汽车已经在测试 1 中删除。

通过使用@BeforeEach 和 AfterEach 注释设置和清理数据库方法,我可以通过 运行ning 解决它,但我很好奇为什么我的项目已在测试 1 中被删除?

您的测试 class 还需要注释:

@TestMethodOrder(OrderAnnotation.class)