Saturday, February 6, 2016

Debugging of NUnit tests in Visual Studio

If you using NUnit 2.6 version, you may have a problem with debugging your tests in Visual Studio in case your target framework is .NET Framework 4.0 or 4.5. Here is the simple way to solve this problem.

In NUnit 2.6.x\bin\ folder there is a file nunit.exe.config. It has the following structure:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!--
   The GUI only runs under .NET 2.0 or higher. The
   useLegacyV2RuntimeActivationPolicy setting only
   applies under .NET 4.0 and permits use of mixed
   mode assemblies, which would otherwise not load
   correctly.
  -->
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    </startup>
    <runtime>
        <!-- Ensure that test exceptions don't crash NUnit -->
        <legacyUnhandledExceptionPolicy enabled="1"/>
        <!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
        <loadFromRemoteSources enabled="true"/>
        <!-- Look for addins in the addins directory for now -->
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="lib;addins"/>
        </assemblyBinding>
    </runtime>
</configuration>
To enable debugging of tests for .NET Framework 4.0 and 4.5 you need to modify this config file (admin privileges are required for that since it is in Program Files):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!--
   The GUI only runs under .NET 2.0 or higher. The
   useLegacyV2RuntimeActivationPolicy setting only
   applies under .NET 4.0 and permits use of mixed
   mode assemblies, which would otherwise not load
   correctly.
  -->
    <startup useLegacyV2RuntimeActivationPolicy="true">       
        <supportedRuntime version="v4.0.30319" />
    </startup>
    <runtime>
        <!-- Ensure that test exceptions don't crash NUnit -->
        <legacyUnhandledExceptionPolicy enabled="1"/>
        <!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
        <loadFromRemoteSources enabled="true"/>
        <!-- Look for addins in the addins directory for now -->
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="lib;addins"/>
        </assemblyBinding>
    </runtime>
</configuration> 
That's all, after this modification you will be able to debug the tests in Visual Studio.

No comments:

Post a Comment