@SQL 每堂课一次

2023-12-20

我正在使用 spring 框架编写一些集成测试。我对不同的集成测试类有不同的 SQL 脚本。像这样的事情:

@ContextConfiguration(classes = ...)
@Sql("classpath:sportCenter-test.sql")
public class SportCenterResourceIT {
    ...
}

除了之前执行的 SQL 脚本之外,一切都运行良好each测试,而不是每堂课一次。我已经搜索了 spring 文档一段时间,但找不到与此选项相关的内容。

有人能给我提示吗?


添加org.springframework.transaction.annotation.Transactional类级别的注释将阻止任何更改@Sql脚本在测试之间持续存在。所以你的代码变成:

@ContextConfiguration(classes = ...)
@Sql("classpath:sportCenter-test.sql")
@Transactional
public class SportCenterResourceIT {
    ...
}

这种组合将产生以下结果:

  1. Your @Sql脚本将在每次测试之前运行
  2. 测试本身将运行
  3. 步骤 1 或 2 中的任何数据库更改都将在每次测试结束时恢复
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@SQL 每堂课一次 的相关文章

随机推荐