117 votos

¿Cómo puedo ejecutar NUnit en modo de depuración de Visual Studio?

Recientemente he sido la construcción de un marco de pruebas para un poco de C# que he estado trabajando. He NUnit y de configurar un nuevo proyecto dentro de mi área de trabajo para probar el componente. Todo funciona bien si me carga mi unidad de pruebas de Nunit (v2.4), pero he llegado al punto donde sería muy útil para que se ejecute en modo de depuración y establecer algunos breakpoints.

Yo he probado las sugerencias de varios guías que sugieren cambiar el 'Debug' propiedades de proyecto de prueba:

Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe
Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll

Yo estoy usando la versión de consola no, pero he probado el de llamar a la interfaz de usuario así. Tanto me da el mismo error cuando intento iniciar la depuración:

Cannot start test project 'TestDSP' because the project does not contain any tests.

Es esto, ya que normalmente la carga de \DSP.nunit en la GUI de Nunit y que es donde las pruebas se realizan?

Estoy empezando a pensar que el problema puede ser que VS desea ejecutar su propio framework de pruebas y es por eso que es no encontrar la NUnit pruebas?

Edit: Para los preguntando acerca de aparatos de prueba, uno de mis .cs archivos en la TestDSP el proyecto se ve aproximadamente así:

namespace Some.TestNamespace
{
    // Testing framework includes
    using NUnit.Framework;

    [TestFixture]
    public class FirFilterTest
    {
        [Test]
        public void Test01_ConstructorTest()
        {
            ...some tests...
        }
    }
}

...Soy bastante nuevo en C# y NUnit en el marco de prueba por lo que es totalmente posible que se me haya olvidado de algunas piezas cruciales de información ;-)

Solución Final: El gran problema fue el proyecto que había utilizado. Si usted escoge Other Languages -> Visual C# -> Test -> Test Project ...a la hora de elegir el tipo de proyecto, Visual Studio se trate y el uso de su propio marco de pruebas por lo que puedo contar. Usted debe seleccionar un normal C# proyecto de biblioteca de clases en su lugar y, a continuación, las instrucciones en mi respuesta seleccionada trabajará.

100voto

Matt Hamilton Puntos 98268

Cuando siento la necesidad de depurar mi NUnit pruebas, yo simplemente conecte a la GUI de NUnit aplicación que utiliza "Debug|asociar al Proceso" y ejecute las pruebas de la interfaz gráfica de usuario. En los breakpoints en mis pruebas (o el código que vamos a probar. Estoy mal entendido su pregunta, o que trabajan para usted?

45voto

Patrick McDonald Puntos 20645

Yo uso la misma técnica que usted está tratando de Jon, sin que el /la asamblea de la bandera, es decir,

Start External Program: C:\Program Files\NUnit 2.4.8\bin\nunit.exe

Command line arguments: "<path>\bin\Debug\Quotes.Domain.Tests.dll"

¿TestDSP.dll contienen todos sus TestFixtures?

Como mi proyecto de prueba no es el inicio del proyecto en la solución, tengo mis pruebas haciendo clic derecho en el proyecto de prueba y la elección de Debug --> Inicio de la Nueva Instancia

21voto

user276648 Puntos 850

Como dijo Steve (lo siento, no se puede simplemente upvote o comentario, no es suficiente reputación - odio), simplemente quite la línea que se parece a

<ProjectTypeGuids>
    {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
</ProjectTypeGuids>

desde el archivo de proyecto. Esta línea que básicamente dice VS.Net que es un proyecto de Prueba, así que el "No se puede iniciar el proyecto de prueba". FYI aquí la 1ª Guid dice que "es una prueba", el 2º dice: "C#". Para obtener información sobre los Guid: http://www.mztools.com/Articles/2008/MZ2008017.aspx

18voto

dblood Puntos 928

Además de la respuesta proporcionada por @Justin aquí hay algunos detalles más para NUnit 2.6.

El uso de NUnit 2.6 adjuntar a nunit.exe o nunit-console.exe y NO el agente. La configuración señaló por @Justin es ligeramente diferente. A continuación es un ejemplo de nunit.exe.config (el mismo para nunit-console.exe.config).

<startup useLegacyV2RuntimeActivationPolicy="true">
  <!-- Comment out the next line to force use of .NET 4.0 -->
  <supportedRuntime version="v2.0.50727" />  
  <supportedRuntime version="v4.0.30319" />
</startup>

.NET 4 proyecto de prueba, para obtener puntos de break para golpear, usted tendrá comentar o eliminar la v2.0 de la línea como un comentario sugiere. Una vez que lo hice me fue capaz de depurar el .NET 4.0 de prueba del proyecto.

17voto

Scott Chamberlain Puntos 32782

Si usted está usando NUnit 2.4 o más reciente usted puede poner el siguiente código en tu SetUpFixture de la clase. (Usted puede hacer esto con las versiones anteriores, pero usted tendrá que hacer lo que sea equivalente a la que tiene la SetUpFixture, o copiar en la prueba en sí.)

[SetUpFixture]
public class SetupFixtureClass
{
    [SetUp]
    public void StartTesting()
    {
        System.Diagnostics.Debugger.Launch();
    }
}

¿Cuál Debugger.Launch() ¿que es el cuadro de diálogo que se muestra cuando usted haga clic en Ejecutar en el interior de NUnit.

JIT Debugger Dialog

Entonces usted puede elegir su instancia de ejecución de visual studio con su proyecto de abrir (el 2º en mi captura de pantalla), a continuación, el depurador se adjunta y en los breakpoints o excepción se muestran en Visual Studio.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X