2015-11-20 43 views
6

我安装了Max OS X 10.11.1,并且安装了Xamarin。我写了简单的测试类,只是为了测试在Mac OS X & Ubuntu上运行NUnit的测试,类字面上返回字符串的一种方法:使用mono/nunit-console/4在Mac OS X控制台上运行测试

using System; 

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

     static void Main(string[] args) 
     { 
     } 

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

而且我有一个NUnit的类来测试我的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()); 
     } 
    } 
} 

当我在Xamarin工作室中运行它时,测试通过的很好。

如何在CLI上实现此目的?

回答

12

单包括安装NUnit的的是通过被称为nunit-console一个shell脚本调用亚军/控制台(版本2.4.8)的:

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

所以从CLI运行测试,您可以调用NUnit的的测试.csproj或CIL /装配:

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

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

注意:解析.csproj文件并创建预期的CIL /程序集位置时,由于硬编码的Windows风格的目录分隔符导致NUnit控制台2.4.x中断,请使用MONO_IOMAP来解决该问题。这在NUnit runner 3.0中不是问题。

例子:

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控制台--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

绝对现货上!如果我能再给你100分。非常感谢你! –

+1

哈哈,我只需要喝更多的咖啡;-) – SushiHangover

相关问题