NUnit-Console命令行选项

与窗体界面比较,控制台界面有一些额外的选项。命令行必须一直指定一个或多个文件名。控制台界面会一直创建一个XML格式的测试结果。缺省的文件取名为TestResult.xml,并且放置在工作目录里。

:缺省的,nunit-console程序不会增加到你的路径里。如果有必要,你必须手动的增加它。

:在Windows操作系统下,选项的前缀要么是斜杠,要么是一个连接符号。在Linux下,必须使用连接符号。带值的选项可以使用等于符号,冒号或空格来将选项和值分开。

指定一个程序集

控制台程序必须一直有一个指定的程序集或者工程。为了运行nunit.tests.dll包含的测试,使用下面的命令行:

        nunit-console nunit.tests.dll

为了通过Visual Studio工程运行nunit.tests.dll的测试,使用:

        nunit-console nunit.tests.csproj

为了通过你定义的NUnit测试工程运行同样的测试,使用:

        nunit-console nunit.tests.nunit

指定一个程序集和Fixture

当指定一个fixture,你必给定包含测试fixture的程序集全路径名。例如,为了运行nunit.tests.dll的NUnit.Tests.AssertionTests,使用下面的命令:

        nunit-console /fixture:NUnit.Tests.AssertionTests nunit.tests.dll

/fixture后指定的名称可以为一个TestFixture类,一个有效的套件(使用Suite属性)或者一个命名空间的名称。如果给定的是一个命名空间,在此命名空间下的所有fixture都将执行。本选项也可以和Visual Studio或NUnit工程一起使用。

指定CLR版本

编写的大多数应用程序都在某个特定版本的CLR下运行。少数设计为可以在多版本下正确操作。不管哪一种,能指定CLR版本进行运行测试是非常重要的。

当仅有一个CLR版本使用时,nunit-gui以及nunit-console的配置文件可以指定该版本。为了选择CLR更加方便,你可以使用提供的clr.bat命令来指定NUnit在那一个版本下运行。

例如,在.net 2.0 framework的RTM版本下,为了运行 nunit.tests.dll的测试,使用:

       clr net-2.0 nunit-console nunit.tests.dll

clr.bat在NUnit 的bin目录下 .你可以将它放在你自己的路径下面,或者将它拷贝到一个恰当的位置。输入 clr /?获取一系列选项:

:如果你在配置文件里使用一个<startup>块,它会预先使用本选项。

:本命令指定为 Microsoft .Net framework. Mono框架提供其他方式来指定运行命令时所 使用的版本。

指定测试目录为Include或Exclude

NUnit2.2提供 CategoryAttribute属性将某个测试 指定到一个或多个目录中。在运行测试时,可以使用/include以及/exclude选项包含或排除目录。下 面的命令仅仅运行在BaseLine目录下的测试案例:

        nunit-console myassembly.dll /include:BaseLine

下面的命令行运行所有测试,除了那些在Database目录下的:

        nunit-console myassembly.dll /exclude:Database            

可以在某个选项中指定多个目录,使用逗号来分隔它们.

:在当前发布版本中,你可以选择包含或排除一运行中的目录,但不能2者都选择。为了更清楚的理解目录选择是如何工作的,回顾一下Category以及Explicit属性的文档。

重定向输出

在控制台显示的输出可以重定向到文件。它包含了测试程序创建的输出,同时也包含了NUnit自己创建的。下面的命令会将标准输入重定向到TestResult.txt.

        nunit-console nunit.tests.dll /out:TestResult.txt

下面的命令将标准的错误输出重定向到StdErr.txt文件。

        nunit-console nunit.tests.dll /err:StdErr.txt

对测试输出进行标记

每个测试的输出会跟着前面一个测试的输出之后。你可以使用/label选项创建一个标识标签在每个测试案例的开始处显示。

指定XML文件名

正如上面描述的 ,控制台程序会创建一个测试结果的XML形式。为了将输出文件名改为"console-test.xml“,使用下面的命令行选项:

        nunit-console /xml:console-test.xml nunit.tests.dll

指定转化(Transform)文件

控制台使用XSLT将测试的结果转化为XML文件。当程序执行时,可以在屏幕上打印他们。控制台有一个缺省的转化形式,它是可执行的一部分。为了指定你自己的命名为"myTransform.xslt"的转化形式,使用下面的命令行选项:

        nunit-console /transform:myTransform.xslt nunit.tests.dll

:为了得到更多测试结果的信息,参看XML schema。该文件为Results.xsd,可执行文件同处一目录。缺省的转化为Summary.xslt ,它在核心源代码目录 。

指定运行哪一个配置

方运行Visual Studio或NUnit工程的测试时,会缺省的加载找到的第一个配置。通常是Debug。加载的配置也可以使用/config开关来控制。下面将加载nunit.tests.dll的Release配置,并在之下运行测试。

        nunit-console nunit.tests.csproj /config:Release

:当直接加载一个程序集时,该选项没有任何影响。

指定多个程序集

你可以使用控制台界面运行多个程序集的测试 ,甚至你并没有定义一个NUnit测试工程文件时。下面的命令会运行 assembly1.dll, assembly2.dll 和assembly3.dll包含的测试。

nunit-console assembly1.dll assembly2.dll assembly3.dll

:你可以在命令行里指定多个程序集,不仅是多个NUnit,也可以是Visual Studio工程。更进一步,你可以不用指定一个带有多个程序集的NUnit或Visual Studio工程。/fixture选项可以和多个程序集一起使用,但是简单指定包含fixture的程序集可能更加有效。

其他选项

/noshadow选项禁止程序集的影拷贝,以改善其性能。

/thread选项会创建一个单独的线程供运行测试用。在某些情况下这是有必要的,例如测试必须在一特殊类型的公寓里运行。通过在一独立的线程里运行,在配置文件的元素下的ApartmentState和ThreadPriority设置会非常有用。如果无线程创建,他们会被忽略,apartment和控制台程序的一样。

:控制台程序的apartment状态可以在不同的发布版本中改变,因此需要一个公寓的用户可以利用该设置,而不是依靠缺省的。

/wait选项让程序在退出前,等待用户的输入。当使用快捷方式运行nunit-console时非常有用。

/xmlconsole选项在控制台里显示未经处理的XML输出,而不是转化它。当调试XML格式的问题时非常有效。

/nologo选项禁止在程序启动时显示版权信息。

/help/?选项显示一个简要的帮助信息。