2015-03-05 3 views
0

Я новичок в Mono, и я хотел бы иметь возможность запускать тесты на Mono. Я создал простой проект тестирования в Visual Studio 2012 и скомпилировал его с .NET 4.5.Запуск тестов NUnit на Mono на Windows

using NUnit.Framework; 
namespace ClassLibrary2.Tests 
{ 
    [TestFixture] 
    public class Class1Tests 
    { 
     [Test] 
     public void MyTest() 
     { 
      var a = "andsdsaj"; 
      var b = "fjkfjkdjfk"; 

      Assert.AreEqual(a, b); 
     } 
    } 
} 

Тогда я пытаюсь выполнить его из строки Mono Command:

C:\Program Files (x86)\Mono>nunit-console "C:\Users\boris.m\Documents\Visual Studio 2012\Projects\ClassLibrary2.Tests\bin\Debug\ClassLibrary2.Tests.dll" 

Я получаю следующее сообщение об ошибке:

C:\Program Files (x86)\Mono>nunit-console "C:\Users\boris.m\Documents\Visual Stu 
dio 2012\Projects\ClassLibrary2.Tests\bin\Debug\ClassLibrary2.Tests.dll" 
NUnit version 2.4.8 
Copyright (C) 2002-2007 Charlie Poole. 
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov. 
Copyright (C) 2000-2002 Philip Craig. 
All Rights Reserved. 

Runtime Environment - 
    OS Version: Microsoft Windows NT 6.1.7601.65536 Service Pack 1 
    CLR Version: 2.0.50727.1433 (3.12.0 (Visual Studio built mono)) 


Unhandled Exception: 
System.ArgumentException: path 
    at System.IO.FileSystemInfo.CheckPath (System.String path) [0x00000] in <filen 
ame unknown>:0 
    at System.IO.DirectoryInfo..ctor (System.String path, Boolean simpleOriginalPa 
th) [0x00000] in <filename unknown>:0 
    at System.IO.DirectoryInfo..ctor (System.String path) [0x00000] in <filename u 
nknown>:0 
    at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:.ctor (string) 

    at NUnit.Util.AddinManager.RegisterAddins() [0x00000] in <filename unknown>:0 

    at NUnit.Util.AddinManager.InitializeService() [0x00000] in <filename unknown 
>:0 
    at NUnit.Util.ServiceManager.InitializeServices() [0x00000] in <filename unkn 
own>:0 
    at NUnit.ConsoleRunner.Runner.Main (System.String[] args) [0x00000] in <filena 
me unknown>:0 
    at NUnit.ConsoleRunner.Class1.Main (System.String[] args) [0x00000] in <filena 
me unknown>:0 

ответ

2

Это выглядит как класс Uri изменилось в Mono 3.12, поэтому NUnit 2.4.8 не возвращает правильный путь к сборке NUnit. Mono 3.3 для Windows работает без ошибок.

Для этой проблемы я открыл ошибку на bugzilla.

Возможно использование NUnit 2.6.4 с Mono 3.12 на Windows. Загрузка файла почтового индекса, а затем извлекая его можно запускать тесты с помощью командной строки, подобной:

mono --runtime=v4.0 nunit-console.exe c:\path\to\tests\MyTests.dll 

Это, кажется, запустить тесты, но NUnit-console.exe, кажется, никогда не закрываются, так что вы должны использовать Ctrl + C чтобы остановить его.

+0

Кажется, что последняя версия 3.12.0. Я не прав? Есть ли какое-либо обходное решение для запуска тестов NUnit на Mono? –

+1

Да, последняя версия Mono для Windows - 3.12.0. Можно запустить тесты, используя NUnit 2.6.4 на Mono. Тестирование выполняется, но nunit-console, похоже, зависает. –

+0

Спасибо, чувак! Подождем исправления ошибок. –

Смежные вопросы