1

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

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

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

4

1 回答 1

4

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

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

于 2012-10-25T14:33:40.563 回答