5

一般建议是我应该始终测试我的数据库迁移,但如何做到这一点似乎是一个保密的秘密;)

我选择的框架是 FluentMigration。

我想我想做的是:

  1. 将数据库迁移到 N-1。
  2. 保存一些数据。
  3. 将数据库迁移到 N。
  4. 读取数据并验证它没有丢失。
  5. 验证其他相关更改

但我不知道如何从我的单元测试中运行迁移。

4

1 回答 1

2

要在集成测试中开始迁移,只需使用 Process.Start 执行 migrate.exe 命令

例如

var migrator = System.Diagnostics.Process.Start("migrator.exe", "/connection \"Data Source=db\\db.sqlite;Version=3;\" /db sqlite /target your.migrations.dll");
migrator.WaitForExit();

如果您使用的是 MSTest,则必须确保将 migrator.exe 作为部署项包含在内,或者在启动进程时指定 .exe 所在的路径。

于 2011-09-02T03:58:37.063 回答