Question or issue on macOS:
I have Max OS X 10.11.1 installed, with Xamarin on it. I wrote simple testing class, just to test running Nunit tests on Mac OS X & Ubuntu, class has literally one method which returns string:
using System; namespace testing_project { public class EmptyClass { public EmptyClass () { } static void Main(string[] args) { } public string helloWorld() { return "Hello World!"; } } }
And I have a NUnit class to test my 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 ()); } } }
When I run this in Xamarin studio, test is passing just fine.
How can I achieve this on CLI?
How to solve this problem?
Mono includes an install of NUnit’s runner/console (version 2.4.8) that is called via a shell script called 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]"
So to run your tests from the CLI you can either call the NUnit’s test .csproj
or the CIL/Assembly:
MONO_IOMAP=all nunit-console nunit-lib/nunit-lib.csproj
or
nunit-console nunit-lib/bin/Debug/nunit-lib.dll
NOTE: NUnit console 2.4.x is broken due a hard-coded Windows-style Directory Separator when parsing .csproj files and creating the expected CIL/assembly location, use MONO_IOMAP
to work around it. This is not a issue in NUnit runner 3.0.
Example:
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.