我正在编写Web应用程序,我想知道填充初始数据的推荐方法是什么.这是JPA/Hibernate和Spring应用程序,由maven构建.到目前为止,我已经使用脚本填充数据库和初始数据,手动启动.
单元测试使用他们自己的数据,在每次测试之前在代码中创建.我的测试类扩展了org.springframework.test.jpa.AbstractJpaTests.
最后,我想有一个maven构建,它创建数据库表单实体(现在我需要第一次运行应用程序来创建数据库,然后运行脚本)然后填充初始/字典数据并运行单元和集成测试.这个过程应该是完全自动化的,把这个构建在CI服务器(哈德森)中,从头开始创建新数据库也很感激.
附加要求:数据库不可知解决方案将是最有价值的.
编辑:我正在寻找的最好的例子是BootStrap.groovy中的初始化闭包.
编辑:添加了一个博客文章的链接,显示如何使用Spring和DbUnit测试Hibernate JPA.
[...]我想要一个maven构建,从实体创建数据库
有一个带有hibernate3:hbm2ddl目标的maven hibernate3插件可能有所帮助.与maven sql插件结合使用,应该可以从生成的DDL创建此模式.
[...]然后填充初始/字典数据
同样,maven sql插件可以在这里完成工作.或者使用DBUnit这是另一种优雅的解决方案(请参阅maven dbunit插件).
并运行单元和集成测试.
好吧,我不确定您的单元测试应该访问数据库,但是,对于集成测试,请按照我的说法检查DBUnit.它是一个非常好的工具,允许您在已知状态下设置数据库,在测试执行后测试预期内容的表并将数据库恢复到初始状态.有关一个很好的例子,请参阅使用Spring和DbUnit测试JPA Hibernate.
这个过程应该是完全自动化的,把这个构建在CI服务器(哈德森)中,从头开始创建新数据库也很感激.
我认为这是可行的.