Recientemente he estado creando un marco de prueba para un poco de C # en el que he estado trabajando. He configurado NUnit y un nuevo proyecto dentro de mi espacio de trabajo para probar el componente. Todo funciona bien si cargo mis pruebas unitarias desde Nunit (v2.4), pero he llegado al punto en el que sería realmente útil ejecutarlo en modo de depuración y establecer algunos puntos de interrupción.
Probé las sugerencias de varias guías que sugieren cambiar las propiedades de 'Depuración' del 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
Estoy usando la versión de consola allí, pero también he intentado llamar a la GUI. Ambos me dan el mismo error cuando intento comenzar a depurar:
Cannot start test project 'TestDSP' because the project does not contain any tests.
¿Es esto porque normalmente cargo \ DSP.nunit en la GUI de Nunit y ahí es donde se llevan a cabo las pruebas?
Estoy empezando a pensar que el problema puede ser que VS quiere ejecutar su propio marco de prueba y por eso no puede encontrar las pruebas NUnit.
Editar : Para aquellos que preguntan sobre accesorios de prueba, uno de mis archivos .cs en el proyecto TestDSP se ve más o menos 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 el marco de prueba NUnit, por lo que es muy posible que me haya perdido información crucial ;-)
Solución final : El gran problema fue el proyecto que usé. Si elige Other Languages -> Visual C# -> Test -> Test Project
... cuando elija el tipo de proyecto, Visual Studio intentará usar su propio marco de prueba, por lo que yo sé. Debería elegir un proyecto de biblioteca de clase C # normal en su lugar y luego las instrucciones en mi respuesta seleccionada funcionarán.
fuente
Respuestas:
Utilizo la misma técnica que estás probando Jon, sin el indicador / assembly, es decir
¿TestDSP.dll contiene todos sus TestFixtures?
Como mi proyecto de prueba no es el proyecto de inicio de la solución, ejecuto mis pruebas haciendo clic con el botón derecho en el proyecto de prueba y seleccionando Depurar -> Iniciar nueva instancia
fuente
/run
a su * línea de comandos argumentos que automáticamente comenzarán a ejecutar pruebas ... También lo he resumido todo (usando imágenes) en mi publicación de blog .<supportedRuntime version="v2.0.50727" />
en nunit.exe.config.Cuando necesito depurar mis pruebas de NUnit, simplemente lo adjunto a la aplicación GUI de NUnit
nunit-agent.exe
usando "Debug | Attach to Process" y ejecuto las pruebas desde la GUI. Se alcanza cualquier punto de interrupción en mis pruebas (o el código que están probando). ¿Estoy entendiendo mal su pregunta o funcionará para usted?fuente
<startup> <supportedRuntime version="4.0" /> </startup>
.Simplemente elimine la línea que parece
de su archivo de proyecto. Básicamente, esta línea le dice a VS.Net que es un proyecto de prueba, por lo tanto, "No se puede iniciar el proyecto de prueba". Para su información, aquí el primer Guid dice "es una prueba", el segundo dice "es C #". Para obtener información sobre esas Guías: http://www.mztools.com/Articles/2008/MZ2008017.aspx
fuente
Además de la respuesta proporcionada por @Justin, aquí hay algunos detalles más para NUnit 2.6.
Usando NUnit 2.6 adjúntelo a nunit.exe o nunit-console.exe y NO al agente. La configuración señalada por @Justin es ligeramente diferente. A continuación se muestra un ejemplo de nunit.exe.config (lo mismo para nunit-console.exe.config).
Para el proyecto de prueba .NET 4, para obtener puntos de interrupción, tendrá que comentar o eliminar la línea v2.0 como sugiere el comentario. Una vez que hice eso, pude depurar el proyecto de prueba .NET 4.0.
fuente
v2.0.50727
línea al depurar ensamblajes .NET 2 de VS2005 con nunit. (Lav4
línea impidió que el depurador de VS 2005 se adjuntara.)Si está usando NUnit 2.4 o más reciente, puede poner el siguiente código en su
SetUpFixture
clase. (Puede hacer esto con versiones anteriores, pero deberá hacer cualquier equivalente que tengaSetUpFixture
, o copiarlo en la prueba).Lo que
Debugger.Launch()
hace es que aparezca el siguiente cuadro de diálogo al hacer clic en Ejecutar dentro de NUnit.Luego, elija su instancia en ejecución de Visual Studio con su proyecto abierto (el segundo en mi captura de pantalla), luego se adjuntará el depurador y los puntos de interrupción o excepciones se mostrarán en Visual Studio.
fuente
En Nunit 3.0.1 (estoy usando VS2013), abra desde el menú principal> Prueba> Windows> Explorador de pruebas. Luego, en "Explorador de prueba", haga clic con el botón derecho en el caso de prueba, es posible que vea:
Espero que esto ayude.
fuente
Instale TestDriven.NET , que es un complemento para Visual Studio
Desde allí, puede hacer clic derecho en el ensamblaje de prueba de su unidad y hacer clic en Ejecutar pruebas para ejecutar todo el conjunto, hacer clic derecho en una clase TestFixture para ejecutar solo las pruebas en esa clase, o hacer clic derecho en un método de prueba para ejecutar solo ese método.
También tiene la opción de probar con depurador, si necesita interrumpir sus pruebas en modo de depuración.
fuente
Pruebe NUnitit, un complemento de Visual Studio de código abierto para depurar casos de prueba de NUnit
Página de inicio - http://nunitit.codeplex.com/
fuente
Elimine ProjectTypeGuids del archivo de proyecto.
fuente
Ahora con fotos:
File -> Open Project
Seleccione su prueba
.dll
de la carpeta bin (C:\......\[SolutionFolder][ProjectFolder]\bin\Debug\xxxxTests.dll
)Vaya a Visual Studio
Debug -> Attach to process
(se abrirá la ventana Adjuntar al proceso)En la lista, desplácese hacia abajo y seleccione y
nunit-agent.exe
luego haga clic enAttach
En este punto, los puntos de interrupción en sus pruebas deberían volverse rojos maduros (desde huecos).
Haga clic
Run
enNunit Gui
y debería obtener su punto de interrupción ...Espero que esto te ahorre algo de tiempo.
fuente
Si puede hacer que la consola o la GUI funcionen, pero sus puntos de interrupción no se ven afectados, es posible que su aplicación esté ejecutando un tiempo de ejecución de .NET diferente al de NUnit. Verifique si su nunit-console.exe.config / nunit.exe.config tiene el tiempo de ejecución especificado (las configuraciones se encuentran en el mismo directorio que los ejecutables de nunit). Especifique el tiempo de ejecución usando el nodo de inicio:
fuente
Si la ruta del proyecto contiene espacios, por ejemplo, "Nuevo proyecto" en la ruta
<path>\bin\Debug\New Project\Quotes.Domain.Tests.dll
, escriba la opción Inicio -> Argumentos de la línea de comandos entre comillas dobles.Pasé mucho tiempo para resolver esto.
fuente
Respecto a lo que dijo el Sr. Patrick McDonald
Intenté solicitar mi biblioteca de clases de prueba pero obtuve un error con respecto a la ruta, así que intenté eliminar los 'Argumentos de la línea de comandos', y afortunadamente funcionó bien y como se esperaba.
fuente
Parece que está intentando utilizar la biblioteca incorrecta. NUnit solo puede iniciarse si la dll que está utilizando contiene TestFixtures.
+1 en TestDriven.Net. He tenido la oportunidad de usarlo varias veces. Puede descargar la versión personal con fines de evaluación de acuerdo con la licencia en http://testdriven.net/purchase_licenses.aspx .
fuente
Recibí el mismo error con MSTest. Descubrí que en la ventana Salida de prueba , algunas de las pruebas tenían ID duplicados y no se podían cargar. Eliminé todas las pruebas duplicadas y ahora pude ejecutar las pruebas cuando inicio el proyecto.
fuente
También hay una extensión ahora "Visual NUnit" que le permitirá ejecutar las pruebas desde dentro de Visual Studio de manera muy similar a la compilación en los identificadores del marco de prueba. Compruébalo en el administrador de extensiones.
fuente
Abra Visual Studio ---> su proyecto ---> Seleccione 'Propiedades' ---> Seleccione 'Depurar' -> Seleccione 'Iniciar programa externo' y establezca la ruta de su NUnit allí (por ejemplo: Iniciar programa externo = C : \ Archivos de programa \ NUnit 2.6.2 \ bin \ nunit.exe) ----> Guardar
Después de configurar esto, simplemente haga clic en Depurar
fuente
Para mí, la solución fue adaptar el archivo de configuración de nunit. Para usar nunit con 4.5-.Net framework y la opción de compilación x64, tuve que agregar una línea a la etiqueta de inicio (versión en tiempo de ejecución compatible).
Luego, podría comenzar haciendo clic con el botón derecho en Testproject Debug -> Start new instance. Antes, necesitaba volver a adjuntar manualmente el proyecto al proceso.
Mis propiedades de depuración fueron, C: \ Archivos de programa (x86) \ NUnit 2.6.4 \ bin \ nunit.exe con el argumento de la ubicación del .dll a probar.
Más información: nunit para probar con .NET 4.0
fuente
Vea si esto ayuda ... Cómo agregar NUnit en Visual Studio
(RighteousRant) Aunque personalmente no me gusta este enfoque ... Si necesita un depurador mientras está probando su código, es un "olor" ya que no tiene suficiente confianza / no sabe cómo funciona su código y necesita el depurador para decirte eso. TDD debería liberarlo de la necesidad de un depurador si se hace correctamente. Use 'Adjuntar depurador a NUNit' solo en casos excepcionales o cuando esté ingresando el código de otra persona.
fuente