【发布时间】:2011-02-15 05:41:42
【问题描述】:
当我运行单元测试时,所有测试都通过了,但不是“测试运行成功”或任何成功消息,而是在小栏中显示“测试运行错误”,告诉我有多少测试通过,即使我所有的测试都通过了。
当我点击文本时,我被带到一个页面,告诉我发生了以下两件事:
警告:测试运行部署期间发生冲突:无法部署测试容器 [...]\Booking.Web.Tests.dll 直接或间接引用的部署项“[...]\Booking.Web.dll”到 'Booking.Web.dll' 因为否则文件 '[...]\Booking.Web.dll' 将覆盖部署项 '[...]\Booking.Web.dll' 直接或间接引用由 '[. ..]\Booking.Web.Tests.dll'
错误:无法初始化 ASP.NET 项目“Booking.Web” 抛出异常:无法正确配置网站;获取 ASP.NET 进程信息失败。请求“http://localhost:54131/VSEnterpriseHelper.axd”返回错误:远程服务器返回错误:(500) 内部服务器错误。
我不明白它在抱怨什么。如何摆脱这些错误?
(供参考:Booking.Web 是一个 ASP.NET MVC 2 项目,Booking.Web.Tests 是一个测试项目,[...] 是我的环境中项目的完整本地路径,在大多数情况下以上案例到Booking.Web项目内的/bin/debug/文件夹)
更新:按照指示,我在事件查看器中查找了更多信息。这是我发现的:
3008 发生配置错误。
2010 年 5 月 8 日凌晨 2:26:15
2010 年 5 月 8 日上午 12:26:15
4ffbe9180c3d4c02adb9ac4d61dd0928
1
1
0
4484bbf4-1-129177519750954331
完整
/
D:\...\Booking.Web\
AASLOEG1876
WebDev.WebServer40.EXE
阿斯洛格\托马斯
配置错误异常
无法加载文件或程序集“Ninject.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=79764a4ef1548af1”或其依赖项之一。无法验证强名称签名。程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。 (来自 HRESULT 的异常:0x80131045)在
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) at
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() 在
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) 在
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) 在
...荒谬的堆栈跟踪。
【问题讨论】:
-
在单元测试中引用 ASP.NET 项目几乎总是一个坏主意。
-
好的...那么我应该如何重构才能摆脱这种情况?
-
在单元测试中引用 ASP.NET MVC 项目是一种常见的做法。否则你将如何测试控制器的动作?
标签: c# asp.net-mvc unit-testing visual-studio-2010 mstest