← Back to team overview

nunit-core team mailing list archive

[Bug 566431] Re: NUnit crashes on .NET 4.0 x64 assemblies

 

Okay.  Here's a overview of what I'm doing:
Installed NUnit 2.5.4.10098.
Created new Class Library in Visual Studio 2010 RTM.
Added nunit.framework.dll to references.
Added [TestFixture] to a class, added a [Test] method to a new method. Built.
Ran nunit.exe
Dragged compiled class library DLL onto Nunit runner.
NullReferenceException occured.  Detail from Tools\Exception Details

System.NullReferenceException...

Server stack trace: 
   at NUnit.Util.ProcessRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Util.RemoteTestAgent.AgentRunner.Load(TestPackage package)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Util.ProcessRunner.Load(TestPackage package)
   at NUnit.Util.TestLoader.LoadTest(String testName)


I then clicked the File menu to exit, then got an unhandled exception:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host

Server stack trace: 
   at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   at System.Runtime.Remoting.Channels.SocketStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at System.Runtime.Remoting.Channels.ChunkedMemoryStream.WriteTo(Stream stream)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.GetRequestStream(IMessage msg, Int32 contentLength, ITransportHeaders headers)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.SendRequest(IMessage msg, ITransportHeaders headers, Stream contentStream)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
   at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.get_Running()
   at NUnit.Core.ProxyTestRunner.get_Running()
   at NUnit.Util.TestLoader.get_Running()
   at NUnit.Gui.NUnitForm.get_IsTestRunning()
   at NUnit.Gui.NUnitForm.NUnitForm_Closing(Object sender, CancelEventArgs e)
   at System.Windows.Forms.Form.OnClosing(CancelEventArgs e)
   at System.Windows.Forms.Form.WmClose(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
nunit
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/nunit.exe
----------------------------------------
nunit-gui-runner
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit-gui-runner.DLL
----------------------------------------
nunit.core
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.core.DLL
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
nunit.util
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.util.DLL
----------------------------------------
nunit.uikit
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.uikit.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
nunit.core.interfaces
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.core.interfaces.DLL
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
nunit.uiexception
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.uiexception.DLL
----------------------------------------
System.Web
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_64/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



If I run nunit-x64.exe and do the same steps I get the same results.

-- 
NUnit crashes on .NET 4.0 x64 assemblies
https://bugs.launchpad.net/bugs/566431
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.

Status in NUnit V2 Test Framework: New

Bug description:
NUnit 2.5.4 shows an error (NullReferenceException) when attempting to test .NET 4.0 assemblies built for AnyCPU (= running as x64 on my system).  This is with the final release version of VS2010 on Vista 64, and affects both the GUI and the console runner.  Attempting to do anything else in the GUI runner then causes a follow-up exception.

To fix, I had to edit the files nunit.exe.config and nunit-console.exe.config, adding the following line after the <configuration>  tag in each file: <startup><requiredRuntime version="v4.0.30319" /></startup>

Peter Ritchie reports that .NET 4.0 assemblies do work if they were built for x86 and he used nunit-x86.exe, hence I assume that this problem is specific to x64 assemblies:
http://msmvps.com/blogs/peterritchie/archive/2010/04/18/getting-started-unit-testing-with-nunit.aspx





References