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?
The nunit-console.exe program is a text-based runner and can be used when you want to run all your tests and don't need a red/yellow/green indication of success or failure. It is useful for automation of tests and integration into other systems.
The nunit.exe program is a graphical runner. It shows the tests in an explorer-like browser window and provides a visual indication of the success or failure of the tests.
The preferred way to download NUnit is through the NuGet package manager. The latest releases of can always be found on the relevant GitHub releases pages.
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 "$@"
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With