Java 使用Intellij或Maven为单元测试生成SQLite数据库?

Java 使用Intellij或Maven为单元测试生成SQLite数据库?,java,sqlite,maven,intellij-idea,Java,Sqlite,Maven,Intellij Idea,我已经为名为CountryRepository.Java的Java存储库编写了一些单元测试 这些单元测试配置为使用test resources文件夹中生成的SQLite DB文件,如下所示: /** * This test relies on the test-seed.sql file located in /src/test/java/resources/db/country */ public class SqliteCountryRepositoryTest { priv

我已经为名为
CountryRepository.Java的Java存储库编写了一些单元测试

这些单元测试配置为使用test resources文件夹中生成的SQLite DB文件,如下所示:

 /**
 * This test relies on the test-seed.sql file located in /src/test/java/resources/db/country
 */
public class SqliteCountryRepositoryTest {

    private final static String DB_CONNECTION = "jdbc:sqlite::resource:db/country/test.db";
文件位置

因为我们不想将DB文件提交到git,所以我必须手动生成test.DB文件,以便单元测试能够工作

e、 g

如何配置Maven和/或Intellij,以便在每次运行测试时生成此DB文件,从而使其可靠地工作

我是否需要编写一个shell脚本并通过Maven调用它

如何对main/resources/db文件执行相同操作的奖励积分


谢谢

我相信生成一个jUnit类规则,在“beforeClass”上创建DB并加载模式,在“afterClass”上删除这些文件将是最好的方法。这样,只为测试创建文件,您甚至可以在临时位置生成它们。 要以编程方式生成DB文件,只需创建一个连接即可。请参阅此处的链接和一些示例代码:

谢谢。但是,如果它位于资源路径上,那么它在JAR内部工作吗?我认为您不能在JAR中写入文件?您不能在JAR中写入新文件,但您始终可以使用默认的临时位置来执行此操作,例如file::createTempFile(),谢谢,但这不是我需要的解决方案。我需要在运行时和JAR内生成DB文件:)您是否考虑在JUnit测试的<代码>安装程序>代码>中创建数据库?
sqlite3 test.db
> .read schema.sql
> .read test-seed.sql