XCo*_*omp 9 mysql testng spring-jdbc embedded-database maven
我正在收集数据并使用Java将这些数据存储在MySQL数据库中.另外,我使用Maven构建项目,TestNG作为测试框架,使用Spring-Jdbc访问数据库.我已经实现了一个封装对数据库的访问的DAO层.除了使用DAO类添加数据之外,我还想执行一些查询,这些查询聚合数据并将结果存储在其他一些表中(如物化视图).
现在,我想编写一些测试用例来检查DAO类是否正常工作.因此,我想到了一个内存数据库,它将填充一些测试数据.由于我也使用MySQL特定的SQL查询来聚合数据,我遇到了一些麻烦:
现在,我有点陷入困境,我想知道我是否应该以不同的方式创建架构.有人提供了一些如何设置合适系统的提示吗?我还有两个其他选择:
我会很感激任何提示.
谢谢,XComp
我为此目的创建了Maven插件:jcabi-mysql-maven-plugin.它在pre-integration-test阶段启动本地MySQL服务器并关闭它post-integration-test.
如果无法让内存中的 MySQL 数据库正常工作,我建议使用 H2 数据库进行“简单”测试,并使用专用的 MySQL 实例来测试特定于 MySQL 的查询。
此外,真实 MySQL 数据库的测试可以在单独的 Maven 配置文件中配置为集成测试,这样它们就不是常规 Maven 构建的一部分。在 CI 服务器上,您可以创建一个额外的作业来定期(例如每天或每隔几个小时)运行 MySQL 测试。通过这样的设置,您可以保留并测试特定于产品的查询,同时您的常规构建不会减慢。即使测试数据库不可用,您也可以运行正常构建。
有一个很好的用于集成测试的 Maven 插件,名为maven-failsafe-plugin。它提供集成前和集成后测试步骤,可用于在测试前设置测试数据并在测试后清理数据库。
| 归档时间: |
|
| 查看次数: |
3206 次 |
| 最近记录: |