sql-maven-plugin を使用して、単体テスト用にインメモリ hsql データベースをセットアップしています
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.8</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>create-db</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<driver>org.hsqldb.jdbcDriver</driver>
<url>jdbc:hsqldb:mem:test;shutdown=false</url>
<username>SA</username>
<password></password>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/test/sql/test_db/test.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
maven:test フェーズで実行される単体テストでは、その URL でデータソースをインスタンス化しました
org.hsqldb.jdbc.JDBCDataSource ds = new JDBCDataSource();
ds.setUrl(URL);
ds.setUser("sa");
ds.setPassword("");
しかし、これには、スクリプトを介して初期化したテーブルがありません。確かに新しいjvmをフォークし、そこから開始された元のhsqlインスタンスにアクセスできないことがわかりました。hsqldb に裏打ちされたファイルを導入せずに解決策はありますか?
ありがとう