El problema es que a menos que indique lo contrario, NUnit generará un subproceso para ejecutar las pruebas cuando lo considere necesario. Si lo mira en Process Explorer, puede ver que "nunit-console.exe" * genera "nunit-agent.exe" *. El depurador de Visual Studio no se conecta automáticamente a procesos secundarios.
En este caso, creo que la versión no coincidente es la razón por la que elige iniciar un subproceso. La forma más fácil de evitar esto es editar "nunit-console.exe.config" * para cambiar el conjunto de valores <supportedRuntime>
. No debería estar ya hay un comentario que marca la línea que se debe comentar con el fin de obligar a que se ejecute como .NET 4.0:
<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>
Una vez que cambie eso, el primer proceso NUnit ya estará .NET 4.0 y no debería necesitar generar un subproceso. Si quiere estar seguro, especifique /process=Single
y NUnit se ejecutará en un único proceso o fallará de inmediato si no puede.
* - Si es necesario utilizar las versiones x86, sustituto:
nunit-console.exe -> nunit-console-x86.exe
nunit-agent.exe -> nunit-agent-x86.exe
nunit-console.exe.config -> nunit-console-x86.exe.config
Debería poder establecer puntos de interrupción en este caso. ¿Cómo está ejecutando las pruebas y cómo está conectando el depurador? –
@FrankSchwieterman Las propiedades de depuración de mi proyecto tienen una acción de inicio que apunta a nunit-console.exe y comandos de línea de comandos que contienen nunit args. Estoy configurando puntos de interrupción y luego selecciono Depurar en el explorador de soluciones para las pruebas csproj. El depurador se ejecuta y el estado del punto de interrupción cambia con el error "No se pueden cargar símbolos" – simonc
hmm. No parece que Visual Studio se haya conectado al proceso de ejecución de las pruebas (se adjuntará a la aplicación para la que aciertes f5, aunque la aplicación tiene un paso de compilación para iniciar NUNit) –