将“@UsingDataSet”转换为“@Sql”
Convert `@UsingDataSet` to `@Sql`
我正在将应用程序从 Thorntail 迁移到 Spring Boot。
我们的一些集成测试正在使用 Arquillian 及其 @UsingDataSet
注释,这非常方便地允许您在 yaml 中指定数据结构。
遗憾的是,我认为 SpringBoot 不支持 "yaml-injections",但它 确实 提供了一个 @Sql
注释,它期望——惊喜 -- sql 个文件。
现在不想重写SQL中的测试数据了。这很麻烦,我不想花几个小时调试 SQL 因为我在某个地方滑倒了。
理想情况下,当然,我们会完全摆脱 yaml/sql 文件并选择 jOOQ 并从代码中填充我们的测试数据库。
虽然还不确定这是否可以通过合理的努力实现。
让我们假设重写代码不是一种选择,并且我们有这样的集成测试
@RunWith(Arquillian::class)
@UsingDataSet("foo.yml","bar.yml","baz.yml")
class MyBloodyIT{
}
我想创建一个辅助"test"class
@RunWith(Arquillian::class)
class MyBloodySQLDumpIT{
@Test
@UsingDataSet("foo.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `foo.sql`
}
@Test
@UsingDataSet("bar.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `bar.sql`
}
@Test
@UsingDataSet("baz.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `baz.sql`
}
}
不过,我如何做到?
有什么方法可以连接到休眠并获取为特定方法生成的语句(以及仅为该方法生成的语句)?
Arquillian 与 Hibernate 有什么关系?我认为它使用 DBUnit 从 YAML 为数据库播种。
你可以做的是使用 p6spy (https://github.com/p6spy/p6spy) JDBC 驱动程序,运行 每个 YAML 文件的模拟测试和从 p6spy 日志中获取所有 SQL 语句。
我正在将应用程序从 Thorntail 迁移到 Spring Boot。
我们的一些集成测试正在使用 Arquillian 及其 @UsingDataSet
注释,这非常方便地允许您在 yaml 中指定数据结构。
遗憾的是,我认为 SpringBoot 不支持 "yaml-injections",但它 确实 提供了一个 @Sql
注释,它期望——惊喜 -- sql 个文件。
现在不想重写SQL中的测试数据了。这很麻烦,我不想花几个小时调试 SQL 因为我在某个地方滑倒了。
理想情况下,当然,我们会完全摆脱 yaml/sql 文件并选择 jOOQ 并从代码中填充我们的测试数据库。
虽然还不确定这是否可以通过合理的努力实现。
让我们假设重写代码不是一种选择,并且我们有这样的集成测试
@RunWith(Arquillian::class)
@UsingDataSet("foo.yml","bar.yml","baz.yml")
class MyBloodyIT{
}
我想创建一个辅助"test"class
@RunWith(Arquillian::class)
class MyBloodySQLDumpIT{
@Test
@UsingDataSet("foo.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `foo.sql`
}
@Test
@UsingDataSet("bar.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `bar.sql`
}
@Test
@UsingDataSet("baz.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `baz.sql`
}
}
不过,我如何做到?
有什么方法可以连接到休眠并获取为特定方法生成的语句(以及仅为该方法生成的语句)?
Arquillian 与 Hibernate 有什么关系?我认为它使用 DBUnit 从 YAML 为数据库播种。
你可以做的是使用 p6spy (https://github.com/p6spy/p6spy) JDBC 驱动程序,运行 每个 YAML 文件的模拟测试和从 p6spy 日志中获取所有 SQL 语句。