Компоненты NUnit для версии 4.0.30319 CLR не установлены

Я пытаюсь реализовать автоматизированный процесс сборки. После сборки выполняются юнит-тесты на nunit-console.exe. Отобразится следующая ошибка:

> c:\nunit_2.5.10\nunit-console.exe c:\builds\Output\bin\TDD.nunit /framework=4.0.30319 /nologo /trace=Off
ProcessModel: Default    DomainUsage: Default
Execution Runtime: v4.0.30319
Unhandled Exception:
System.ArgumentException: NUnit components for version 4.0.30319 of the CLR are not installed
Parameter name: targetRuntime
   at NUnit.Util.TestAgency.LaunchAgentProcess(RuntimeFramework targetRuntime, Boolean enableDebug)
   at NUnit.Util.TestAgency.CreateRemoteAgent(RuntimeFramework framework, Int32 waitTime, Boolean enableDebug)
   at NUnit.Util.TestAgency.GetAgent(RuntimeFramework framework, Int32 waitTime, Boolean enableDebug)
   at NUnit.Util.ProcessRunner.Load(TestPackage package)
   at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
   at NUnit.ConsoleRunner.Runner.Main(String[] args)

На сборщике нет nunit-agent.exe. Однако на моей машине он даже не называется, поэтому я полагаю, что это не обязательно.

Почему nunit-agent.exe требуется в некоторых случаях, но не всегда требуется? Какие условия должны быть выполнены, поэтому nunit-agent не нужно запускать?

Изменить: я нашел один ресурс, который описывает, как он работает, но не совсем хорошо: http://www.nunit.org/index.php?p=nunit-agent&r=2.5.10. В нем говорится, что он запускается, когда программа должна запускаться в другой структуре, чем та, которая используется NUnit (это так, поскольку NUnit скомпилирован для версии 2.0). Однако на моей машине nunit-agent.exe не работает, хотя условия кажутся одинаковыми.

Ответы

Ответ 1

Я столкнулся с этой же ошибкой и определенно решил включить nunit-agent.exe в папку, где был запущен nunit-console.exe. Полный список .exe и .dll, необходимых для успешного выполнения теста, был:

nunit.core.dll
nunit.core.interfaces.dll
nunit.framework.dll
nunit.util.dll
nunit-agent.exe
nunit-console.exe
nunit-console-runner.dll

Все файлы упакованы в загрузку, доступную из nunit.org. Начиная с этой даты, 2.6.3 является текущей версией. Документацию для консольного бегуна можно найти здесь. Прямая загрузка zip файла здесь.

Для тестовой сборки, ориентированной на .NET 4.5.1, следующий оператор будет выполнять тесты:

nunit-console.exe your-assembly.dll /framework=v4.5.1

Ответ 2

Добавление тега конфигурации "startup/supportedRuntime" в nunit-console.exe.config разрешило его для меня.

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0.30319" />
</startup>