【发布时间】:2012-09-20 14:32:05
【问题描述】:
我有一个包含 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 代码包。我检查了package site,发现最新版本依赖于EF 4.3.1
更新:
已确认。从站点下载和升级解决方案后,我不再收到错误消息。我收到另一个错误,但 4.3.1 不再是问题。希望开发者更新他的 NuGet 解决方案,他已经 7 个月没有更新了。
【问题讨论】:
标签: asp.net-mvc-4 visual-studio-2012 entity-framework-5