【发布时间】:2013-12-13 20:19:59
【问题描述】:
我正在尝试找出一种方法来针对内存数据库 (H2) 执行某些集成测试,并针对我们的 Oracle 测试数据库执行其他集成测试。也许这是我有限的测试编写经验,但似乎某些测试(例如搜索查询)更适合在内存中,因为我可以控制查询的数据集,而其他测试(例如测试事务/持久性)将受益于违背我们的 REAL 模式和数据库(甲骨文)。
我可以想到两种方法,但不知道如何实现:
- 添加一个新的测试阶段,这样我就可以拥有 integration-test-in-mem 和 integration-test(使用 oracle),并在不同的阶段运行不同的测试,并为不同的 DB 配置每个测试
- 让每个测试控制使用哪个数据源
我更喜欢第一个作为它的清洁器,我不必用逻辑来污染我的测试来控制它使用哪个数据源。
另外,第二个不是简单地按域设置不同的数据源——我想在针对不同数据库的不同测试中重用相同的域。
任何想法表示赞赏,如果您这样做了,请分享!我们确实使用 SPOCK。
【问题讨论】:
标签: grails testing integration-testing spock env