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)
我正在使用 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)