我有一个示例测试项目,提供给我的项目团队的开发人员,以学习如何使用自动化测试。当我运行我拥有的一组单元测试时,它们都通过了,但我收到以下警告和错误:
警告:测试运行部署期间发生冲突:测试容器“[...]\webappmvc4.tests.dll”直接或间接引用的部署项“[...]\WebAppMvc4.dll”无法部署到“WebAppMvc4.dll” ' 因为否则文件 '[...]\WebAppMvc4.dll' 将覆盖部署项 '[...]\WebAppMvc4.dll' 直接或间接引用的 '[...]\webappmvc4.tests.dll'
错误:无法初始化 ASP.NET 项目“WebAppMvc4”。抛出异常:无法正确配置网站;获取 ASP.NET 进程信息失败。请求“ http://localhost:12903/VSEnterpriseHelper.axd ”返回错误:远程服务器返回错误:(500) 内部服务器错误。
这与此处发现的问题非常相似: Test run errors with MSTest in VS2010
但是,此问题的解决方法与关闭项目属性中的 Sign The Assembly 复选框有关。此项目未启用签名,我无法确定警告/错误的原因。
以下是来自事件查看器的警告信息:
事件代码:3008 事件消息:发生配置错误。事件时间:2012 年 6 月 27 日上午 9:40:51 事件时间 (UTC):2012 年 6 月 27 日下午 2:40:51 事件 ID:a9b4d9d93e334acbbde6184527b4cd81 事件顺序:1 事件发生:1 事件详细代码:0
进程信息:进程ID:4128 进程名称:WebDev.WebServer40.EXE
异常信息:异常类型:ConfigurationErrorsException 异常消息:无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common,Version=5.0.505.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。无法验证强名称签名。该程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(来自 HRESULT 的异常:0x80131045)在 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() 在 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) 在 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)在 System.Web.Compilation.BuildManager。
无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common”或其依赖项之一。无法验证强名称签名。该程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(来自 HRESULT 的异常:0x80131045)
请求信息: 请求 URL:
http://localhost:12903/VSEnterpriseHelper.axd
这是错误的信息:
(QTAgent32.exe,PID 9392,线程 7)CoveragePlugIn.InitAspNet 为“WebAppMvc4”调用 WorkerProcessIdentity 或 WorkerProcessImpersonatedIdentity:
Microsoft.VisualStudio.Enterprise.Common.AspNetHelperException:无法正确配置网站;获取 ASP.NET 进程信息失败。
请求“ http://localhost:12903/VSEnterpriseHelper.axd ”返回错误:远程服务器返回错误:(500) 内部服务器错误。---> System.Net.WebException:远程服务器返回错误:(500)内部服务器错误。
在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.VisualStudio.Enterprise.Common.BaseHelper.GetWorkerProcessInfo() --- 内部异常堆栈跟踪结束 --- 在 Microsoft.VisualStudio.Enterprise.Common.BaseHelper.GetWorkerProcessInfo()在 Microsoft.VisualStudio.TestTools.CodeCoverage.CoveragePlugIn.InitAspNet(TestRun testRun)