2015-11-20 3 views
6

Ich habe Max OS X 10.11.1 installiert, mit Xamarin. Ich einfache Prüfung Klasse schrieb, nur Nunit Tests auf Mac OS X & Ubuntu zu testen, laufen, Klasse hat buchstäblich eine Methode, die Zeichenfolge zurückgibt:Ausführen von Tests unter Mac OS X Konsole mit mono-/nitum-Konsole/4

using System; 

namespace testing_project 
{ 
    public class EmptyClass 
    { 
     public EmptyClass() 
     { 
     } 

     static void Main(string[] args) 
     { 
     } 

     public string helloWorld() 
     { 
      return "Hello World!"; 
     } 
    } 
} 

Und ich habe eine NUnit Klasse meine EmptyClass zu testen:

using System; 
using NUnit.Framework; 

namespace testing_project 
{ 
    [TestFixture] 
    public class EmptyClassTest 
    { 
     [Test] 
     public void testHelloWorld() 
     { 
      EmptyClass empty = new EmptyClass(); 
      Assert.AreEqual ("Hello World!", empty.helloWorld()); 
     } 
    } 
} 

Wenn ich dies in Xamarin Studio ausführen, ist der Test sehr gut.

Wie kann ich dies auf CLI erreichen?

Antwort

12

Mono umfasst eine von Läufer/Konsole (Version 2.4.8) des NUnit installieren, die über eine Shell-Skript nunit-console genannt genannt wird:

cat `which nunit-console` 
#!/bin/sh 
exec /Library/Frameworks/Mono.framework/Versions/4.2.1/bin/mono --debug $MONO_OPTIONS /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5/nunit-console.exe "[email protected]" 

So Ihre Tests von der CLI ausführen können Sie entweder der von NUnit nennen Test .csproj oder der CIL/Aufbau:

MONO_IOMAP=all nunit-console nunit-lib/nunit-lib.csproj 

oder

nunit-console nunit-lib/bin/Debug/nunit-lib.dll 

HINWEIS: NUnit-Konsole 2.4.x ist aufgrund eines hartcodierten Windows-ähnlichen Verzeichnisseparators beschädigt, wenn CSProj-Dateien analysiert und der erwartete CIL/Assembly-Speicherort erstellt wird, verwenden Sie MONO_IOMAP, um es zu umgehen. Dies ist kein Problem in NUnit Runner 3.0.

Beispiel:

nunit-console nunit-lib/bin/Debug/nunit-lib.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: Unix 15.0.0.0 
    CLR Version: 4.0.30319.17020 (4.2.1 (explicit/8862921 Thu Oct 29 17:09:16 EDT 2015)) 

.F 
Tests run: 1, Failures: 1, Not run: 0, Time: 0.687 seconds 

Test Case Failures: 
1) nunitlib.Test.TestCase : Expected string length 8 but was 5. Strings differ at index 0. 
    Expected: "Overflow" 
    But was: "Stack" 
    -----------^ 

nunit-Konsole --help

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: Unix 15.0.0.0 
    CLR Version: 4.0.30319.17020 (4.2.1 (explicit/8862921 Thu Oct 29 17:09:16 EDT 2015)) 


NUNIT-CONSOLE [inputfiles] [options] 

Runs a set of NUnit tests from the console. 

You may specify one or more assemblies or a single 
project file of type .nunit. 

Options: 
-fixture=STR   Test fixture to be loaded (Short format: -load=STR) 
-run=STR    Name of the test to run 
-config=STR    Project configuration to load 
-xml=STR    Name of XML output file 
-transform=STR   Name of transform file 
-xmlConsole    Display XML to the console 
-output=STR    File to receive test output (Short format: -out=STR) 
-err=STR    File to receive test error output 
-labels     Label each test in stdOut 
-include=STR   List of categories to include 
-exclude=STR   List of categories to exclude 
-domain=X    AppDomain Usage for Tests 
-noshadow    Disable shadow copy when running in separate domain 
-nothread    Disable use of a separate thread for tests 
-wait     Wait for input before closing console window 
-nologo     Do not display the logo 
-nodots     Do not display progress 
-help     Display help (Short format: -?) 


Options that take values may use an equal sign, a colon 
or a space to separate the option from its value. 
+1

Absolut genau das Richtige! Wenn ich könnte, würde ich dir noch 100 Punkte geben. Vielen Dank! –

+1

LOL, ich nehme einfach noch mehr Kaffee ;-) – SushiHangover