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

Tom*_*han 10 c# asp.net-mvc unit-testing mstest visual-studio-2010

当我运行我的单元测试时,所有测试都通过,但不是"测试运行成功"或任何成功消息,我在小栏中得到"测试运行错误",告诉我有多少测试通过,即使所有测试都通过我的测试通过了.

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

警告:测试运行部署期间发生冲突:测试容器[...]\Booking.Web.Tests.dll直接或间接引用的部署项'[...]\Booking.Web.dll'无法部署到'预订.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日上午02时26分15秒
2010年5月8日上午12点26分15秒
4ffbe9180c3d4c02adb9ac4d61dd0928
1
1
0
4484bbf4-1-129177519750954331
完整
/
d:\ ...\Booking.Web\
AASLOEG

1876
WebDev.WebServer40.EXE
Aasloeg \托马斯
ConfigurationErrorsException
无法加载文件或程序集"Ninject.Web.Mvc,版本= 2.0.0.0,文化=中性公钥= 79764a4ef1548af1"或它的一个依赖.强名称签名无法验证.程序集可能已被篡改,或者是延迟签名但未使用正确的私钥完全签名.(从HRESULT异常:0x80131045)在
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串的AssemblyName,布尔starDirective)在
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()在
System.Web.Configuration.CompilationSection.LoadAssembly(集信息AI)在
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)at
... stack trace in absurdum.

er-*_*r-v 9

首先 - 您启用了代码覆盖率.你可以在这里阅读它.所以单元测试没有问题.这是代码覆盖问题.

第二件事 - 这个警告没问题 - 没关系.

第三件事 - 这个错误 - 这是关键问题.

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


Jef*_*ton 6

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

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

mstest.exe /testcontainer:Tests.web.dll /testcontainer:Tests.svcs.dll /testcontainer:Tests.core.dll
Run Code Online (Sandbox Code Playgroud)

当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
Run Code Online (Sandbox Code Playgroud)