问题:

如果DB设计有自增ID时,Repository层测试在某些环境下因为并行执行可能会遇到乱序的问题,导致某些测试偶尔通过、偶尔失败;

解决方案:

1、注入:EntityManager�
2、在 BeforeEach 阶段重置表的自增ID

参考代码:

  1. @SpringBootTest
  2. @ActiveProfiles("test")
  3. @Transactional
  4. class XxxRepositoryTest {
  5. @Autowired
  6. private EntityManager entityManager;
  7. @BeforeEach
  8. void resetAutoId() {
  9. String sql = "ALTER TABLE table_name ALTER COLUMN id RESTART WITH 1";
  10. entityManager.createNativeQuery(sql).executeUpdate();
  11. }
  12. }