2015-11-20 30 views
6

Ho installato Max OS X 10.11.1, con Xamarin su di esso. Ho scritto semplice classe di test, solo per testare l'esecuzione di test NUnit su Mac OS X & Ubuntu, classe ha letteralmente un metodo che restituisce stringa:Esecuzione di test su console Mac OS X utilizzando mono/nunit-console/4

using System; 

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

     static void Main(string[] args) 
     { 
     } 

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

e ho una classe di NUnit per testare il mio EmptyClass:

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()); 
     } 
    } 
} 

Quando eseguo questo in Xamarin studio, il test sta passando bene.

Come posso ottenere questo risultato su CLI?

risposta

12

Mono include una installazione di corridore/console di NUnit (versione 2.4.8) che viene chiamato tramite uno script di shell chiamato nunit-console:

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]" 

Quindi, per eseguire i test dalla CLI è possibile chiamare il NUnit Test .csproj o il CIL/Struttura:

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

o

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

NOTA: la console NUnit 2.4.x non funziona a causa di un separatore di directory in stile Windows codificato durante l'analisi dei file .csproj e la creazione della posizione CIL/assembly prevista, utilizzare MONO_IOMAP per aggirare il problema. Questo non è un problema in NUnit runner 3.0.

Esempio:

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-console --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

assolutamente perfetto! Se potessi darti altri 100 punti. Grazie mille! –

+1

LOL, prenderò solo più caffè ;-) – SushiHangover