Проблема в том, что, если вы не укажете обратное, NUnit вызовет подпроцесс для запуска тестов, когда сочтет это необходимым. Если вы посмотрите его в Process Explorer, вы увидите, что «nunit-console.exe» * порождает «nunit-agent.exe» *. Отладчик Visual Studio не подключается автоматически к дочерним процессам.
В этом случае я считаю, что несовпадение версий является причиной запуска подпроцесса. Самый простой способ обойти это - отредактировать «nunit-console.exe.config» *, чтобы изменить набор значений <supportedRuntime>
. Там уже должен быть комментарий, отмечающий строку, которую вы должны закомментировать, чтобы заставить его работать как .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>
Как только вы это измените, первым процессом NUnit будет уже .NET 4.0, и он не должен вызывать подпроцесс. Если вы хотите быть уверенным, укажите /process=Single
, и NUnit будет работать в одном процессе или сразу завершится с ошибкой, если не сможет.
* - Если вам нужно использовать версии x86, замените:
nunit-console.exe -> nunit-console-x86.exe
nunit-agent.exe -> nunit-agent-x86.exe
nunit-console.exe.config -> nunit-console-x86.exe.config