9

Xamarin を搭載した Max OS X 10.11.1 がインストールされています。Mac OS X および Ubuntu で Nunit テストの実行をテストするためだけに、簡単なテスト クラスを作成しました。クラスには文字列を返すメソッドが文字通り 1 つあります。

using System;

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

        static void Main(string[] args)
        {
        }

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

そして、EmptyClass をテストするための NUnit クラスがあります。

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でこれを達成するにはどうすればよいですか?

4

1 に答える 1

14

Mono には、次のシェル スクリプトを介して呼び出される NUnit のランナー/コンソール (バージョン 2.4.8) のインストールが含まれています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 "$@"

.csprojしたがって、CLI からテストを実行するには、NUnit のテストまたは CIL/Assemblyを呼び出すことができます。

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

また

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

: NUnit コンソール 2.4.x は、.csproj ファイルを解析し、予想される CIL/アセンブリの場所を作成するときに、ハードコーディングされた Windows スタイルのディレクトリ セパレーターが原因で壊れてMONO_IOMAPいます。これを回避するために使用します。これは、NUnit ランナー 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-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.
于 2015-11-20T14:11:03.293 に答える