sqlite - 在内存中预填充 SQLite 数据库以进行 Nhibernate 测试

标签 sqlite unit-testing nhibernate

目前,我有一个单元测试框架,我在内存中使用带有 NHibernate 的 SQLite 数据库进行单元测试。每个单元测试都在自己的 session 中运行以确保独立性。在大多数情况下,这很棒,但是当我接近 150 次测试时,它开始运行有点慢。这样做的主要原因是,在每次测试之前,我必须在数据库中插入大量数据。

基本上我的应用程序是一个工作流应用程序,我们在数据库中存储了很多关于工作流的信息(步骤数、每个步骤的字段等)。除非有这些东西,否则应用程序无法运行,因此我的测试需要它。

此时,我的总测试时间中大约有 4 分钟用于在每个单元测试之前填充数据库。我很想在每次测试执行时让这个人口发生一次,但由于在 session 关闭时内存数据库被破坏,我不确定如何。有什么建议么?

最佳答案

您可以将预填充的数据库文件复制到临时目录(如果可能,在 RAM 磁盘上)。

或者,您可以使用 SQLite backup API 将数据库的内容复制到内存数据库中。 .

关于sqlite - 在内存中预填充 SQLite 数据库以进行 Nhibernate 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069866/

相关文章:

c# - Entity Framework 6.2 将多对多从一个 DbContext 复制到另一个 DbContext

java - Spring3/Hibernate3/TestNG : some tests give LazyInitializationException, 有些没有

.net - 如何在 Moq 中调用作为参数传递的谓词?

nhibernate - 是否可以设置 NHibernate 的获取大小?

nhibernate - 我可以使用 Nhibernate QueryOver 对实体的集合计数进行分组和计数吗?

nhibernate - Fluent NHibernate 共享列的组件

java - Linux 中的 Sqlite java.lang.UnsatisfiedLinkError

SQLite:一个单词中的FTS匹配可以忽略哪个字符

android - 难以从android中的SQLite数据库中检索所有数据

python - 如何在执行 celery 任务后测试是否发送了电子邮件