Unit testing JUnit测试未按顺序运行

Unit testing JUnit测试未按顺序运行,unit-testing,testing,junit,amazon-dynamodb,junit5,Unit Testing,Testing,Junit,Amazon Dynamodb,Junit5,我使用JUnit5来测试DynamoDB,我有一个用@BeforeAll注释的setup方法,其中我在数据库中插入了3个项,还有一个用@AfterAll注释,在所有测试运行后删除数据库中的项 @Test @Order(1) public void addNewCar() { repository.save(new Car("d")); assertThat(repository.count()).isEqualTo(4); } 我先插入一个新项目,然后删除一个项目: @Tes

我使用JUnit5来测试DynamoDB,我有一个用@BeforeAll注释的setup方法,其中我在数据库中插入了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中删除


我可以通过使用@beforeach和AfterEach注释setup和clean数据库方法来解决这个问题,但我很好奇为什么我的项目在测试1中已经被删除了?

您的测试类还需要注释:

@TestMethodOrder(OrderAnnotation.class)