如何对我的 FluentMigrator 迁移进行单元测试?

发布于 2024-12-02 08:34:10 字数 239 浏览 1 评论 0原文

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

我选择的框架是 FluentMigration。

我想我想做的是:

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

但我无法弄清楚如何从单元测试中运行迁移。

The general advice is I should always test my database migrations, but how to do it seems to be a well kept secret ;)

My chosen framework is FluentMigration.

What I think I want to do is:

  1. Migrate database to N-1.
  2. Save some data.
  3. Migrate database to N.
  4. Read data and verify it's not lost.
  5. Verify other relevant changes

But I can't figure out how to run the migrations from my unit tests.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兲鉂ぱ嘚淚 2024-12-09 08:34:10

要在集成测试中启动迁移,只需使用 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 所在的路径。

To kick off the migration in your integration tests just shell out to the migrate.exe command using Process.Start

For example

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

If you're using MSTest you'll have to make sure that migrator.exe is included as a deployment item, or that you specify a path to where the .exe lives when you start the process.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文