2011-03-03 8 views
15

He estado usando nunit con visual studio 2010 en una PC con Windows 7 de 64 bits.nunit locking dll

Puedo abrir el nunit gui y ejecutar mis pruebas unitarias. Si a continuación, cambiar una de las pruebas de unidad e intento de reconstruir, estoy recibiendo un archivo de error de bloqueo de la siguiente manera -

de error 1 No se puede copiar el archivo "obj \ Debug \ myProject.Tests.dll" a " bin \ Debug \ myProject.Tests.dll ". El proceso no puede acceder al archivo 'bin \ Debug \ myProject.Tests.dll' porque está siendo utilizado por otro proceso . myProject.Tests

He utilizado el explorador de procesos para verificar que es el nunit-agent.exe que está bloqueando el dll.

He notado a través de herramientas> ensamblados de prueba que nunit.exe se está ejecutando bajo la versión clr Net 2.0 y nunit-agent.exe se está ejecutando bajo la versión clr Net 4.0. ¿Podría eso tener algo que ver con el problema? Si es así, ¿cómo puedo solucionarlo? Si no, ¿alguien tiene alguna idea de qué más puede estar pasando?

Gracias por cualquier idea.

+0

posible duplicado de [NUnit: "El proceso no puede acceder el archivo ... porque está siendo utilizado por otro proceso. "] (http://stackoverflow.com/questions/935244/nunit-the-process-cannot-access-the-file-because-it-is-being -used-by-anoth) – Kos

Respuesta

18

Creo que esto tiene que ver con la ubicación de mi proyecto de prueba. Inicialmente, estaba colocando el proyecto de prueba nunit en un directorio separado de mis archivos dll. Estaba pensando que mantendría todos mis proyectos de prueba en una ubicación centralizada.

I trasladaron mi proyecto de prueba a la misma ubicación que mis dlls de prueba en mis proyectos de estudio visual. Después de eso, parece estar funcionando correctamente.

Creo que esto tiene que hacer la copia sombra. Leí en el grupo nunit en google que el .NET Framework solo copiará instantáneamente ensamblajes en la base de la aplicación o sus subdirectorios.

Esto me llevó a intentar crear el proyecto de prueba nunit dentro de mi base de aplicaciones y eso pareció funcionar.

Espero que tenga sentido.

Gracias

+0

¡Ahh, eres un genio! Eso solucionó mi problema, me estaba molestando por días. – Shagglez

+0

Excelente, esto resolvió nuestro problema. Gracias – GlennMoseley

+0

muchas gracias. ¡Esto fue realmente molesto! –

8

también enfrentan el problema exacto, sin embargo la respuesta de czuroski no funcionaba para mí (aunque creo que estamos en efecto hablando de la misma cosa).

Lo que hizo el trabajo para mí era asegurar que en NUnit fijo el Project Path y Project Base apuntaban a la misma carpeta raíz de la aplicación bajo Project ->Edit. Volví a guardar mi proyecto Nunit existente en el mismo directorio que mi archivo VS sln.

+0

Muchas gracias. No quería incluir el proyecto NUnit en el directorio del proyecto para evitar arruinar el repositorio de control de versiones.¡Actualizar la 'Base del proyecto' para apuntar al directorio de la solución ayudó! – Kos

2

Otra cosa a comprobar es asegurarse de que la copia de la sombra está habilitada en Nunit -> Herramientas -> Configuración -> TestLoader -> Avanzado -> Habilitar instantáneas de

+0

Este fue mi problema: D gracias ... –