我有一个包含 3 个项目的 MCV 4.5 解决方案。场地、测试和模型。站点和模型引用 EF 5.0。我搜索了所有解决方案文件以获取对 4.3.1 的引用,但结果为空。我已删除并重新创建了对 EF 5.0 的所有引用
我有一个运行良好的 HomeControllerTest.cs。用这个作为测试
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new HomeController();
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.AreEqual("Modify this template to jump-start your ASP.NET MVC application.", result.ViewBag.Message);
}
我创建了一个新的 LOBControllerTest.cs 来支持站点项目中的 LOBController.cs。此测试类使用以下测试失败,并出现错误“无法加载文件或程序集 'EntityFramework, Version=4.3.1.0'
[TestMethod]
public void Index()
{
// Arrange
LOBController controller = new LOBController();
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.IsNotNull(result);
}
如果我更改上述测试以执行 HomeController,如下所示,它运行得很好。
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new HomeController();
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.IsNotNull(result);
}
这是在全新安装的 Windows Server 2012 上全新安装的 VS2012。
有什么想法吗?
更新,我忘了提到我也在使用 ReSharper 7.1。我想知道是否有我缺少的设置。
我发现 RS7 stackoverflow.com/questions/12357696/... 有一个记录在案的错误,所以我禁用了 RS7 测试套件并尝试直接从 VS2012 接口运行它,结果相同。所以它不是与 RS7 隔离的。
更新:
这是一个链接https://www.dropbox.com/sh/740w2jsp8i1mslg/pWiwnSewHQ可以让任何想要查看它的人访问这个项目。这没什么特别的,它只是一个模板项目。我们正在工作中开始一个新项目,我是 MVC 和测试驱动开发的新手,所以我试图抢占先机。
2012 年 9 月 21 日更新
我相信我已经找到了。在与将原始 Wholesale 模板解决方案放在一起的开发人员交谈后,我发现 Wholesale.Admin 中的 Repositories 文件夹引用了一个 NUGet 代码包。我检查了包站点,发现最新版本依赖于 EF 4.3.1
更新:
这得到了证实。从站点下载和升级解决方案后,我不再收到错误消息。我收到另一个错误,但 4.3.1 不再是问题。希望开发人员更新他的 NuGet 解决方案,他已经 7 个月没有更新了。