springboot~Profile開發環境與單元測試用不同的資料庫
阿新 • • 發佈:2018-12-29
期望
- 希望開發環境dev用mysql
- 單元測試使用本機的h2資料庫
引入依賴
compile('org.springframework.boot:spring-boot-starter-data-jpa')
runtime('com.h2database:h2')
runtime('mysql:mysql-connector-java')
兩種環境的配置,預設為dev
spring: application.name: lind-productCenter profiles.active: dev rabbitmq: host: localhost port: 5672 username: guest password: guest virtual-host: pilipa server: port: 9090 --- spring: profiles: dev datasource: url: jdbc:mysql://127.0.0.1:3306/productCenter?useSSL=false&allowPublicKeyRetrieval=true&createDatabaseIfNotExist=true username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver jpa: database: MYSQL show-sql: true #顯示後臺處理的SQL語句 hibernate: ddl-auto: update #自動檢查實體和資料庫表是否一致,如果不一致則會進行更新資料庫表 --- spring: profiles: test datasource: platform: h2 driverClassName: org.h2.Driver url: jdbc:h2:mem:testdb jpa: database-platform: org.hibernate.dialect.H2Dialect hibernate: ddl-auto: update
單元測試可以提出一個基類,添加註解即可
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @RunWith(SpringRunner.class) @ActiveProfiles("test") public class BaseControllerTest { @Autowired protected WebTestClient http; /** * action 執行前執行 . */ @Before public void before() { http = http.mutate() .responseTimeout(Duration.ofMillis(300000)) .build(); } }