一般建议是我应该始终测试我的数据库迁移,但如何做到这一点似乎是一个保密的秘密;)
我选择的框架是 FluentMigration。
我想我想做的是:
- 将数据库迁移到 N-1。
- 保存一些数据。
- 将数据库迁移到 N。
- 读取数据并验证它没有丢失。
- 验证其他相关更改
但我不知道如何从我的单元测试中运行迁移。
一般建议是我应该始终测试我的数据库迁移,但如何做到这一点似乎是一个保密的秘密;)
我选择的框架是 FluentMigration。
我想我想做的是:
但我不知道如何从我的单元测试中运行迁移。
要在集成测试中开始迁移,只需使用 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 所在的路径。