我一直致力于编写一些使用内存(H2)数据库的集成测试,但我仍然坚持这个错误。
引起:org.h2.jdbc.JdbcSQLException:表" TESTTABLE"未找到; SQL语句:
问题是,在生产中,Hibernate正在将表名和列名从骆驼套管改为下划线。 (TestTable - > test_table)但是使用H2测试DB它只是大写(TestTable - > TESTTABLE)
这是我的测试配置类:
code > Optimize imports
}
我宁愿不必对所有内容进行注释,以便测试可以知道名称是什么。
有关解决这个问题的任何想法或建议吗?谢谢你的帮助!
答案 0 :(得分:0)
这并没有完全回答我提出的具体问题,但我能够以更加简单的方式使其工作。如果你废弃我在原始问题中发布的所有内容,你只需要做几件事。
首先,您必须包含依赖项。我使用gradle所以我刚刚添加了这个:
testCompile("com.h2database:h2:1.4.191")
接下来,将这些注释添加到您的测试中:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MultifamilyIntegrationTest {
@Autowired
protected TestService testService;
@Test
public void test() {
testService.getUsers();
}
}
最后,您必须在/ src / test / resources文件夹中包含data.sql和schema.sql文件。
schema.sql文件是所有架构的创建脚本 相关。
data.sql文件将插入所有需要的数据。