Database EF数据库/模型第一单元(集成)测试

Database EF数据库/模型第一单元(集成)测试,database,entity-framework,unit-testing,integration-testing,ef-database-first,Database,Entity Framework,Unit Testing,Integration Testing,Ef Database First,我希望我的每个单元(集成)测试方法都使用一个干净、一致的数据库和每个测试的特定测试数据 请您提供一些代码示例/片段,并告诉我以下问题在EF 5 database first和model first两种情况下的最佳实践是什么 如何为每个测试方法创建数据库 如何为每种测试方法设置测试数据 如何删除每个测试方法的数据库 SSDT项目用于处理数据库模式,如何在每次测试运行中使用当前的SSDT模式?因此,测试总是针对数据库的当前开发版本执行 请考虑下列问题: 单元测试应在dev机器和服务器CI构建上本地执

我希望我的每个单元(集成)测试方法都使用一个干净、一致的数据库和每个测试的特定测试数据

请您提供一些代码示例/片段,并告诉我以下问题在EF 5 database first和model first两种情况下的最佳实践是什么

  • 如何为每个测试方法创建数据库
  • 如何为每种测试方法设置测试数据
  • 如何删除每个测试方法的数据库
  • SSDT项目用于处理数据库模式,如何在每次测试运行中使用当前的SSDT模式?因此,测试总是针对数据库的当前开发版本执行 请考虑下列问题:

  • 单元测试应在dev机器和服务器CI构建上本地执行
  • 每个测试可能有不同的测试数据
  • 应避免手动定义.mdf测试文件,因为有几个开发人员正在处理该产品,并且存在一个潜在的风险,即一个删除人员会覆盖另一个开发人员以前签入的.mdf文件的更改->开发过程应尽可能简单
  • 使用了SSDT,因此这可能是创建数据库的一个选项(可能不是一个好的选项,因为我希望为每个测试创建数据库),而我对SSDT的可能性还没有深入的了解
  • 测试执行时间的良好性能是很好的
  • 使用VS/TFS 2012
  • 使用SQL Server 2012
  • 应用程序是一个C#桌面应用程序
  • 模拟EF上下文等不是一个选项
  • 我希望你能指导我正确地解决上面的4个问题。我不知道EF是否为我的挑战提供了一些功能(我认为只针对代码优先),或者这一切是否都必须通过执行SQL脚本或类似的方式来解决


    谢谢

    哇。2年了,这个问题没有答案。现在肯定有人有主意了!?