[英]Testing JPA with Spring Boot 1.4.1 and H2
我正在嘗試使用H2測試我的JPA代碼,我的生產數據庫是PostGres。
我運行測試時遇到的錯誤是:
Caused by: java.lang.ClassNotFoundException: org.h2.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
我的pom.xml文件中有H2:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
不知道為什么它找不到驅動程序。
作為替代方案,我嘗試添加@DataJpaTest,這確實讓我得到了H2但是我沒有成功地覆蓋它的配置如何導致FlyWay在測試運行多次之后抱怨現有版本。
我還嘗試將以下內容放在application.yml(在test / resource中)與@DataJpaTest一起處理我的FlyWay問題,但是它被忽略了這個注釋或者沒有被加載:
hibernate:
ddl-auto: create-drop
我想要:
有小費嗎? 其他人如何配置生產是一種類型的數據庫並且測試因嵌入式數據而下降的情況?
事實證明我畢竟不使用1.4.1。 我還有1.4.0。 我更新到1.4.1並做了一個mvn clean包。 還刪除了org.hsqldb依賴項。 最后,我在src / main / resources中使用了application.yml,並將PostGres的依賴性移到了名為“cloud”的配置文件中。 我刪除了與H2有關的所有其他配置。 我還刪除了JUnit類上的所有注釋,除了start.spring.io首次生成測試類時給出的注釋。 之后所做的一切都在那之后起作用。 可能是我在我的配置中搞砸了什么,或者1.4.0中可能存在某種錯誤? 無論如何,我重新開始營業:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.