application-test.properties

通常情况下,需要针对内存数据库中的 H2 运行所有测试。执行此操作的一种简单方法是向项目添加 src/test/resources/application-test.properties。在 application-test.properties 中,可以有效地覆盖数据源的属性并指定使用 H2

针对内存数据库中的 H2 运行所有测试。

当通过 DB.getDefault() 自动创建数据库实例时,Ebean 会在类路径中查找 application-test.properties 的存在。如果找到,则通常指定使用内存 H2 数据源。

application-test.properties 示例

## Create DB from scratch prior to running tests
ebean.db.ddl.generate=true
ebean.db.ddl.run=true

## Use H2 when running tests
datasource.db.username=sa
datasource.db.password=
datasource.db.databaseUrl=jdbc:h2:mem:tests
datasource.db.databaseDriver=org.h2.Driver

以编程方式 - loadTestProperties()

使用 DatabaseConfigDatabaseFactory 以编程方式创建数据库实例时,有一个方法 databaseConfig.loadTestProperties(),如果存在,它会以类似的方式查找 application-test.properties 文件。

@Override
public Database getObject() throws Exception {

  DatabaseConfig config = new DatabaseConfig();
  config.setName("db");
  config.loadFromProperties(properties);
  ...

  // load application-test.properties if present for running tests
  // typically using H2 in memory database
  config.loadTestProperties();

  // set as default and register so that Model can be
  // used if desired for save() and update() etc
  config.setDefaultServer(true);
  config.setRegister(true);

  return DatabaseFactory.create(config);
}