2015-07-02 2 views
4

Я пытаюсь запустить тестовую сборку, построенную с .NET Framework 4.5.1 на Mono 4.0 и NUnit 3.0 в Windows.Как запустить NUnit 3.0 с Mono 4.0 runtime?

Кто-нибудь знает, как сделать nunit-console.exe, увидеть среду выполнения Mono 4.0, установленную на моей машине, и перестать говорить, что она неизвестна или недоступна?

Если я бегу NUnit-console.exe через моно и установить целевую структуру:


mono C:\Program Files (x86)\NUnit.org\bin\nunit-console.exe --framework=mono-4.0 "C:\MyTestAssembly.dll" 

NUnit Console Runner 3.0.5610 
Copyright (C) 2014 Charlie Poole 

Test Files 
    C:\MyTestAssembly.dll 

Runtime Environment 
    OS Version: Microsoft Windows NT 6.3.9600.0 
    CLR Version: 4.0.30319.0 

Options 
    ProcessModel: Default DomainUsage: Default 
    Execution Runtime: mono-4.0 
    Work Directory: C:\ 
    Internal Trace: Off 

The requested framework mono-4.0 is unknown or not available. 

Если я бегу NUnit-console.exe непосредственно, без моно выход тот же:


C:\Program Files (x86)\NUnit.org\bin\nunit-console.exe --framework=mono-4.0 "C:\MyTestAssembly.dll" 

Если я бегу NUnit-console.exe через моно, но без целевой структуры, выходные изменения:


mono C:\Program Files (x86)\NUnit.org\bin\nunit-console.exe "C:\MyTestAssembly.dll" 

NUnit Console Runner 3.0.5610 
Copyright (C) 2014 Charlie Poole 

Test Files 
    C:\MyTestAssembly.dll 

Runtime Environment 
    OS Version: Microsoft Windows NT 6.3.9600.0 
    CLR Version: 4.0.30319.0 

Options 
    ProcessModel: Default DomainUsage: Default 
    Execution Runtime: Not Specified 
    Work Directory: H:\Safe\Desenvolvimento\Concert\Reactive Services 
    Internal Trace: Off 

System.ArgumentException: The mono-4.0 framework is not available 
Parameter name: framework 
    at NUnit.Engine.Services.TestAgency.LaunchAgentProcess (NUnit.Engine.TestPackage package) [0x00000] in :0 
    at NUnit.Engine.Services.TestAgency.CreateRemoteAgent (NUnit.Engine.TestPackage package, Int32 waitTime) [0x00000] in 
:0 
    at NUnit.Engine.Services.TestAgency.GetAgent (NUnit.Engine.TestPackage package, Int32 waitTime) [0x00000] in :0 
    at (wrapper remoting-invoke-with-check) NUnit.Engine.Services.TestAgency:GetAgent (NUnit.Engine.TestPackage,int) 
    at NUnit.Engine.Runners.ProcessRunner.LoadPackage() [0x00000] in :0 

И, наконец, если я запустил последнюю опцию с помощью NUnit 2.6.4, тестовый запуск будет выполняться, но в конце будет выполняться монопроцесс.


mono C:\Program Files (x86)\NUnit 2.6.4\bin\nunit-console.exe "C:\MyTestAssembly.dll" 

И если я бегу без моно и целевой структуры с использованием NUnit 2.6.4 или NUnit 3.0, тестовые пробеги и процесс завершается нормально.


C:\Program Files (x86)\NUnit 2.6.4\bin\nunit-console.exe "C:\MyTestAssembly.dll" 
C:\Program Files (x86)\NUnit.org\bin\nunit-console.exe "C:\MyTestAssembly.dll" 

ответ

1

Вы должны использовать NUnit, встроенный в моно. Выполните следующие команды в консоли:

cd C:\Program Files (x86)\Mono\bin 
nunit-console4 *PATH TO YOUR .Tests.dll* 
Смежные вопросы