在VS2010中使用MSTest测试运行错误

当我运行我的unit testing时,所有测试都通过,但是不是“测试运行成功”或者无论成功消息是什么,我在小栏中得到“测试运行错误”,告诉我有多少测试通过,即使所有测试都通过我的测试通过。

当我点击文本时,我被带到一个页面,告诉我发生了以下两件事:

警告:测试运行部署期间发生冲突:测试容器[…] \ Booking.Web.Tests.dll直接或间接引用的部署项'[…] \ Booking.Web.dll’无法部署到’预订.Web.dll’因为否则文件'[…] \ Booking.Web.dll’将覆盖直接或间接由'[…]引用的部署项'[…] \ Booking.Web.dll’ \ Booking.Web.Tests.dll”

错误:无法初始化ASP.NET项目’Booking.Web’抛出exception:网站无法正确配置; 获取ASP.NET进程信息失败。 请求’ http:// localhost:54131 / VSEnterpriseHelper.axd ‘返回错误:远程服务器返回错误:(500)内部服务器错误。

我不明白它抱怨的一半。 我该如何摆脱这些错误?

(供参考:Booking.Web是一个ASP.NET MVC 2项目,Booking.Web.Tests是一个测试项目,[…]是我环境中项目的完整本地路径,在上面的大多数情况下到Booking.Web项目内的/ bin / debug /文件夹)

更新:按照说明,我在事件查看器中查找了更多信息。 这是我发现的:

3008发生配置错误。
5/8/2010 2:26:15 AM
5/8/2010 12:26:15 AM
4ffbe9180c3d4c02adb9ac4d61dd0928
1
1
0
4484bbf4-1-129177519750954331
充分
/
d:\ … \ Booking.Web \
AASLOEG

1876年
WebDev.WebServer40.EXE
Aasloeg \托马斯
ConfigurationErrorsException
无法加载文件或程序集’Ninject.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 79764a4ef1548af1’或其依赖项之一。 强名称签名无法validation。 程序集可能已被篡改,或者是延迟签名但未使用正确的私钥完全签名。 (来自HRESULT的exception:0x80131045)at
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)at
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()at
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)at
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)at at
……荒谬的堆栈痕迹

首先 – 您启用了代码覆盖率。 你可以在这里阅读它。 所以unit testing没有问题。 这是代码覆盖问题。

第二件事 – 这个警告是好的 – 没关系。

第三件事 – 这个错误 – 这是关键问题。

可能存在不同的问题 – 最常见的是您应该引用更多的程序集。 要找出应该加载的内容,您必须转到事件查看器并查看Windows日志 – >应用程序

我有与MS-Test相关的错误,抱怨DLL可以“覆盖部署项目blah.dll”。

发生这种情况是因为我正在为多个DLL同时运行MS-Test,如下所示:

mstest.exe /testcontainer:Tests.web.dll /testcontainer:Tests.svcs.dll /testcontainer:Tests.core.dll 

当MS-Test运行时,它试图从测试中获取所有输出DLL,并将它们放在测试运行的out / Out目录中。 在我的例子中, Tests.svcs.dllTests.core.dll都引用了相同的程序集( Core.dll ),因此它试图将该DLL复制到同一个地点两次 (从而导致警告)。

为了解决这个问题,我将每个程序集的测试运行分开,这给每个测试运行它的输出DLL的自己/ Out文件夹

 mstest.exe /testcontainer:Tests.web.dll mstest.exe /testcontainer:Tests.svcs.dll mstest.exe /testcontainer:Tests.core.dll