2017-02-21 100 views
5

我有一個彈簧啓動應用程序,它有幾個@Entity類和@RepositoryRestResource repositort接口。現在我想寫一些測試,在那裏我可以檢查是否可以使用這些存儲庫向數據庫中添加新記錄,但我不想使用配置的MySQL數據庫,但是我想使用一些嵌入式數據庫像H2。目前,我有一個application.properties文件,它看起來像這樣:使用嵌入式數據庫進行彈簧啓動測試

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.url=jdbc:mysql://localhost:3306/mydb 
spring.datasource.username=root 
spring.datasource.password=qwerty123 

問題:如何配置我的應用程序使用其他分貝測試?我的項目中沒有xml,所有內容都基於註釋。我嘗試使用@Bean來定義@Configuration類以創建DataSource,然後在測試類中使用它與@ContextConfiguration註釋,但它說它無法加載上下文。

回答

13

如果您正在使用Maven項目,則可以將application.properties文件添加到您的src/test/resources中,例如使用以下內容。

# Create DDL 
spring.jpa.hibernate.ddl-auto=create 

# H2 in local file system allowing other simultaneous connections 
spring.datasource.url=jdbc:h2:~/test;AUTO_SERVER=TRUE 

此外,您還需要包括H2的依賴(pom.xml):

<dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
    <version>1.4.193</version> 
</dependency> 
+0

它仍然使用MySQL數據庫,而不是如果我這樣做的。我應該提供關於測試課程的更多信息嗎?一些註釋明確定義這些屬性而不是來自'main'文件夾的那些註釋? –

+0

好吧,我添加了@PropertySource(「路徑/到/屬性」)'註釋測試類,現在它的工作原理,謝謝 –

相關問題