Pregunta

Todo funciona bien cuando la clase de pruebas unitarias es parte del proyecto principal (TestAccount).

Cada artículo que he leído sobre las pruebas unitarias recomienda colocar las pruebas en un proyecto separado, así que ...

  • agregó otro proyecto (TestAccount.UnitTests) a la solución
  • movió la clase de pruebas unitarias (AccountTests.vb) a TestAccount.UnitTests
  • y agregó una referencia en TestAccount.UnitTests a TestAccount (copy local = true)

La solución se compila sin advertencias. Sin embargo, nUnit no puede acceder al proyecto principal y da el siguiente error para cada prueba:

  

System.IO.FileNotFoundException: No se pudo cargar el archivo o ensamblado 'TestAccount, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.

¿Qué estoy haciendo mal?

(Estaba teniendo problemas similares con nunit.framework.dll hasta que lo agregué al GAC)

captura de pantalla de Solution Explorer http://img440.imageshack.us/img440/4862 /nunitsolutionexploreree3.jpg

Visual Studio 2005
.NET 2.0
nUnit 2.4.8 (versión .NET 2.0)

[Editar] Solo tengo este problema cuando ejecuto nUnit desde Visual Studio (como comando externo). Si cargo la consola nUnit de forma independiente, funciona bien.

[Editar] Omar: sí, tengo la referencia al otro proyecto. Aquí hay una captura de pantalla de mi explorador de soluciones

Creo que podría tener que ejecutar la consola nUnit por separado (en lugar de a través de las herramientas externas de VS).

¿Fue útil?

Solución

Encontré un informe de error eso dice que Visual Studio expande incorrectamente las macros TargetPath y TargetDir. Se expanden al directorio obj \, no bin \

[Actualización] El problema / solución se trata en realidad en el Soporte de Visual Studio sección de la documentación. Dado que las macros 'Target' apuntan a obj \, no puede usarlas listas para usar. Terminé usando la siguiente expresión en el campo Argumentos:

$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt)

Otros consejos

Esto puede sonar tonto, pero voy a ir a lo obvio ¿le ha dado a su proyecto de prueba una referencia al otro proyecto?

Otros problemas que son comunes para este tipo de problema es el uso de clases internas a las que no se puede acceder desde otro proyecto / espacio de nombres.

También asegúrese de que la ruta de salida de su ensamblado corresponda a lo que está configurado en su configuración NUnit. Tengo la misma configuración pero no tengo que configurar 'copy local = true'

¿El problema es que no encuentra la aplicación en sí o una de las dependencias de la aplicación? Puede intentar usar FileMon o Fusion Log Viewer para ver qué está fallando exactamente. Es posible que el problema no sea encontrar la aplicación en sí, sino localizar otra dependencia. Asegúrese de que las dependencias tengan Copiar local establecido en Verdadero.

¿Cómo exactamente está iniciando la GUI de NUnit dentro de VisualStudio? Si está configurando el "Iniciar programa externo" bajo las propiedades del proyecto, le da la opción de especificar el directorio de trabajo. Es posible que deba cambiar esto a la ubicación de compilación de su dll de prueba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top