views:

818

answers:

1

When I run my Unit Tests, all tests pass, but instead of "Test run succeeded" or whatever the success message is, I get "Test run error" in the little bar that tells me how many of my tests pass, even though all my tests passed.

When i click the text, I'm taken to a page that tells me the following two things happened:

Warning: conflict during test run deployment: deployment item '[...]\Booking.Web.dll' directly or indirectly referenced by the test container [...]\Booking.Web.Tests.dll cannot be deployed to 'Booking.Web.dll' because otherwise the file '[...]\Booking.Web.dll' would override deployment item '[...]\Booking.Web.dll' directly or indirectly referenced by '[...]\Booking.Web.Tests.dll'

Error: Cannot initialize the ASP.NET project 'Booking.Web' Exception was thrown: The website could not be configured correctly; getting ASP.NET proccess information failed. Requesting 'http://localhost:54131/VSEnterpriseHelper.axd' returned an error: The remote server returned an error: (500) Internal Server Error.

I don't understand half of what it's complaining about. How do I get rid of these errors?

(And for reference: Booking.Web is an ASP.NET MVC 2 project, Booking.Web.Tests is a Test project, [...] is the full local path to the projects in my environment, in most of the cases above to the /bin/debug/ folder inside the Booking.Web project)

Update: As instructed, I looked for more info in Event Viewer. Here's what I found:

3008 A configuration error has occurred.
5/8/2010 2:26:15 AM
5/8/2010 12:26:15 AM
4ffbe9180c3d4c02adb9ac4d61dd0928
1
1
0
4484bbf4-1-129177519750954331
Full
/
D:\...\Booking.Web\
AASLOEG

1876
WebDev.WebServer40.EXE
Aasloeg\Tomas
ConfigurationErrorsException
Could not load file or assembly 'Ninject.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=79764a4ef1548af1' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 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
...stack trace in absurdum.

+3  A: 

First of all - you have Code Coverage enabled. You can read here about it. So there is no problems with Unit Tests. This is code coverage problem.

Second thing - this warning is ok - never mind about it.

Third thing - this error - this is the key problem.

There can be different problems - most common is that you should refference more assemblies. To find out what exactly should be loaded you must go to Event Viewer and look at at Windows Logs->Application

er-v
So, did it work?
er-v
I find an error with Ninject.Web.Mvc (for which I downloaded the source and built against Ninject 2 and ASP.NET MVC 2 dlls myself...) but I haven't been able to get rid of the error, since I can't figure out why loading the dll isn't working properly. I'll update my post with the info I find in Event Viewer. Also, as you say I have code coverage enabled - but which part of this are you saying is affected by that?
Tomas Lycken
Well, you can turn off code coverage. But if you need it you should understand why this problem apears. Actualy if you've builded them by yourself have you signed them? 'Ninject.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=79764a4ef1548af1 - means that it looks for the signed assembly. I understand - this looks realy strange that you can run web site but code coverage for some reason nobody can understand requires more assemblies to be included in application.
er-v
I believe I havent signed it - should I? How do I? Or could I just wait until Ninject releases a new version targeting .Net 4 and this will go a way automagically?
Tomas Lycken
Ok, I've downloaded Ninject 2 and compiled Ninject.Web.Mvc and added it to the sample mvc project, turned codecoverage on and reproduced your error.To get rid of it you should do the following.Turn off signing for Ninject.Web.Mvc. You can do it in Project->Properies->Signing tab and uncheck Sign The Assembly checkbox. Rebuild. Replace signed assembly with unsigned. The error should go away.
er-v
Thanks a lot! I can't mark your answer as the correct one now - I assume that's because the bounty period has expired, but you should have recieved the bounty points anyway, right? Again, thanks!
Tomas Lycken