Компоненты 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>
Ответ 3
Попробуйте использовать Fusion, чтобы увидеть, какая сборка может отсутствовать и где работает .exe.
http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx