1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<!-- Standard Head Part -->
<head>
<title>NUnit - ConsoleCommandLine</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="en-US">
<link rel="stylesheet" type="text/css" href="nunit.css">
<link rel="shortcut icon" href="favicon.ico">
</head>
<!-- End Standard Head Part -->
<body>
<!-- Standard Header for NUnit.org -->
<div id="header">
<a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
<div id="nav">
<a href="http://www.nunit.org">NUnit</a>
<a class="active" href="index.html">Documentation</a>
</div>
</div>
<!-- End of Header -->
<div id="content">
<h2>NUnit-Console Command Line Options</h2>
<p>The console interface has a few additional options compared to the forms
interface. The command line must always specify one or more file names. The
console interface always creates an XML representation of the test results.
This file by default is called TestResult.xml and is placed in the working
directory.</p>
<p><b>Note:</b> By default the nunit-console program is not added to your path. You
must do this manually if this is the desired behavior.</p>
<p><b>Note:</b> Under the Windows operating system, options may be prefixed by either
a forward slash or a hyphen. Under Linux, a hyphen must be used. Options that
take values may use an equal sign, a colon or a space to separate the option
from its value.</p>
<h4>Specifying an Assembly</h4>
The console program must always have an assembly or project specified. To run
the tests contained in the nunit.tests.dll use the following command:
<pre class="programtext"> nunit-console nunit.tests.dll</pre>
</p>
<p>To run the tests in nunit.tests.dll through the Visual Studio project, use:
<pre class="programtext"> nunit-console nunit.tests.csproj</pre>
</p>
<p>To run the same tests through an NUnit test project you have defined, use:
<pre class="programtext"> nunit-console nunit.tests.nunit</pre>
</p>
<h4>Specifying an Assembly and a Test to be Run</h4>
<p>You may specify a test to be run by proviig the full name of the test along
with the containing assembly. For example to run NUnit.Tests.AssertionTests
in the nunit.tests assembly use the following command:
<pre class="programtext"> nunit-console /run:NUnit.Tests.AssertionTests nunit.tests.dll</pre>
<p>The name of the test to be run may be that of a test case, test fixture or
a namespace. Unlike the <b>/fixture</b> option, this option affects the running
rather than the loading of the tests. Consequently it supports much broader use,
including situations involving SetUpFixtures, which are not run if the class
in question is not loaded. You should use <b>/run</b> in lieu of <b>/fixture</b>
in most cases.
<h4>Specifying an Assembly and a Fixture to be Loaded</h4>
<p>When specifying a fixture, you must give the full name of the test fixture
along with the containing assembly. For example, to load the
NUnit.Tests.AssertionTests in the nunit.tests.dll assembly use the following
command:
<pre class="programtext"> nunit-console /fixture:NUnit.Tests.AssertionTests nunit.tests.dll</pre>
</p>
<p>The name specified after the <b>/fixture</b> option may be that of a TestFixture
class, a legacy suite (using the Suite property ) or a namespace. If a
namespace is given, then all fixtures under that namespace are loaded.</p>
<p>This option is provided for backward compatibility. In most cases, you will
be better served by using the <b>/run</b> option.
<h4>Specifying the Version of the CLR</h4>
<p>Most applications are written to run under a specific version of the CLR.
A few are designed to operate correctly under multiple versions. In either case,
it is important to be able to specify the CLR version to be used for testing.</p>
<p>When only one version of the CLR is used, the config files for nunit-gui and
nunit-console may be set up to specify that version. As a more convenient
alternative when switching CLRs, you may use the provided <b>clr.bat</b>
command to specify the version under which NUnit should run.</p>
<p>For example, to run the tests in nunit.tests.dll under the RTM version of
the .Net 2.0 framework, use:</p>
<pre class="programtext"> clr net-2.0 nunit-console nunit.tests.dll</pre>
<p>The <b>clr.bat</b> file is located in the NUnit <b>bin</b> directory. You may
put this on your path, or copy it to a convenient location. Enter <b>clr /?</b>
for a list of options.</p>
<p><b>Note:</b> If you use a <startup> section in the config file, it takes
precedence over this option.</p>
<p><b>Note:</b> This command is specific to the Microsoft .Net
framework. The Mono framework provides other means to specify the version
to be used when running a command.</p>
<h4>Specifying Test Categories to Include or Exclude</h4>
<p>NUnit provides CategoryAttribute for use in marking tests as belonging to
one or more categories. Categories may be included or excluded in a test run
using the <b>/include</b> and <b>/exclude</b> options. The following command
runs only the tests in the BaseLine category:
<pre class="programtext"> nunit-console myassembly.dll /include:BaseLine</pre>
</p>
<p>The following command runs all tests <b>except</b> those in the Database
category:
<pre class="programtext"> nunit-console myassembly.dll /exclude:Database</pre>
</p>
<p>
Multiple categories may be specified on either option, by using commas to
separate them.
<p><b>Notes:</b> Beginning with NUnit 2.4, the /include and /exclude options may
be combined on the command line. When both are used, all tests with the included
categories are run except for those with the excluded categories.</p>
<p>Beginning with NUnit 2.4.6, you may use a <b>Category Expression</b> with either
of these options:
<dl>
<dt>A|B|C
<dd>Selects tests having any of the categories A, B or C.
<dt>A,B,C
<dd>Selects tests having any of the categories A, B or C.
<dt>A+B+C
<dd>Selects only tests having all three of the categories assigned
<dt>A+B|C
<dd>Selects tests with both A and B OR with category C.
<dt>A+B-C
<dd>Selects tests with both A and B but not C.
<dt>-A
<dd>Selects tests not having category A assigned
<dt>A+(B|C)
<dd>Selects tests having both category A and either of B or C
</dl>
<p>The comma operator is equivalent to | but has a higher precendence. Order
of evaluation is as follows:
<ol>
<li>Unary exclusion operator (-)
<li>High-precendence union operator (,)
<li>Intersection and set subtraction operators (+ and binary -)
<li>Low-precedence union operator (|)
</ol>
<p>For a clear understanding of how category
selection works, review the documentation for both the
<a href="category.html">Category Attribute</a> and the
<a href="explicit.html">Explicit Attribute</a>.</p>
<h4>Redirecting Output</h4>
<p>The output that is normally shown on the console may be redirected to a file.
This includes output created by the test program as well as what NUnit itself
creates. The following command redirects standard output to the TestResult.txt
file:
<pre class="programtext"> nunit-console nunit.tests.dll /out:TestResult.txt</pre>
</p>
<p>The following command redirects standard error output to the StdErr.txt file.
<pre class="programtext"> nunit-console nunit.tests.dll /err:StdErr.txt</pre>
</p>
<h4>Labeling Test Output</h4>
<p>The output from each test normally follows right after that of the preceding
test. You may use the <b>/labels</b> option to cause an identifying label to be
displayed at the start of each test case.</p>
<h4>Specifying the XML file name</h4>
<p>As stated above, the console program always creates an XML representation of the
test results. To change the name of the output file to
"console-test.xml" use the following command line option:
<pre class="programtext"> nunit-console /xml:console-test.xml nunit.tests.dll</pre>
</p>
<h4>Specifying the Transform file</h4>
<p>The console interface uses XSLT to transform the test results from the XML file
to what is printed to the screen when the program executes. The console
interface has a default transformation that is part of the executable. To
specify your own transformation named "myTransform.xslt" use the
following command line option:
<pre class="programtext"> nunit-console /transform:myTransform.xslt nunit.tests.dll</pre>
</p>
<p><b>Note:</b> For additional information see the XML schema for the test results.
This file is in the same directory as the executable and is called
<a href="files/Results.xsd">Results.xsd</a>.
The default transform <a href="files/Summary.xslt">Summary.xslt</a> is located in the core source directory.</p>
<h4>Specifying which Configuration to run</h4>
<p>When running tests from a Visual Studio or NUnit project, the first
configuration found will be loaded by default. Usually this is Debug. The
configuration loaded may be controlled by using the <b>/config</b> switch. The
following will load and run tests for the Release configuration of
nunit.tests.dll.
<pre class="programtext"> nunit-console nunit.tests.csproj /config:Release</pre>
</p>
<p><b>Note:</b> This option has no effect when loading an assembly directly.</p>
<h4>Specifying Multiple Assemblies</h4>
<p>You may run tests from multiple assemblies in one run using the console
interface even if you have not defined an NUnit test project file. The
following command would run a suite of tests contained in assembly1.dll,
assembly2.dll and assembly3.dll.
<pre class="programtext"> nunit-console assembly1.dll assembly2.dll assembly3.dll</pre>
</p>
<p><b>Notes:</b> You may specify multiple assemblies, but not multiple NUnit or
Visual Studio projects on the command line. Further, you may not specify an
NUnit or Visual Studio project together with a list of assemblies.</p>
<p>Beginning with NUnit 2.4, the console loads multiple assemblies specified
in this way into separate AppDomains by default. You may provide a separate
config file for each assembly. You may override the default by use of the
<b>/domain</b> option.
<p>Beginning with NUnit 2.4, the <b>/fixture</b>
option, when used with multiple assemblies, will run tests matching the
fixture name in all the assemblies. In earlier versions, only the first
test found was executed.</p>
<h4>Controlling the Use of AppDomains</h4>
<p>The <b>/domain</b> option controls of the creation of AppDomains for running tests.
The following values are recognized:</p>
<dl style="margin-left: 2em">
<dt><b>None</b>
<dd>No domain is created - the tests are run in the primary domain. This normally
requires copying the <b>NUnit</b> assemblies into the same directory as your tests.
<dt><b>Single</b>
<dd>A test domain is created - this is how NUnit worked prior to version 2.4
<dt><b>Multiple</b>
<dd>A separate test domain is created for each assembly
</dl>
<p>The default is to use multiple domains if multiple assemblies are listed on
the command line. Otherwise a single domain is used.</p>
<h4>Other Options</h4>
<p>The <b>/noshadow</b> option disables shadow copying of the assembly in order to
provide improved performance.</p>
<p>The <b>/thread</b> option causes a separate thread to be created for running the
tests. This is necessary in cases where the tests must run in a particular type
of apartment. By running in a separate thread, the ApartmentState and
ThreadPriority settings under the
<TestRunner>
element of the config file will be honored. If no thread is created, these are
ignored and the apartment will be the same as that of the console program.</p>
<p><b>Note:</b>The apartment state of the console program may change from release
to release, so users requiring a particular apartment should take advantage of
this setting rather than relying on the default.</p>
<p>The <b>/wait</b> option causes the program to wait for user input before
exiting. This is useful when running nunit-console from a shortcut.</p>
<p>The <b>/xmlconsole</b> option displays raw XML output on the console rather than
transforming it. This is useful when debugging problems with the XML format.</p>
<p>The <b>/nologo</b> option disables display of the copyright information at the
start of the program.</p>
<p>The <b>/help</b> or <b>/?</b> option displays a brief help message</p>
</div>
<!-- Submenu -->
<div id="subnav">
<ul>
<li><a href="index.html">NUnit 2.4.7</a></li>
<ul>
<li><a href="getStarted.html">Getting Started</a></li>
<li><a href="assertions.html">Assertions</a></li>
<li><a href="attributes.html">Attributes</a></li>
<li><a href="nunit-console.html">Console Runner</a></li>
<ul>
<li id="current"><a href="consoleCommandLine.html">Command-Line</a></li>
</ul>
<li><a href="nunit-gui.html">Gui Runner</a></li>
<li><a href="features.html">Other Features</a></li>
<li><a href="releaseNotes.html">Release Notes</a></li>
<li><a href="samples.html">Samples</a></li>
<li><a href="license.html">License</a></li>
</ul>
</ul>
</div>
<!-- End of Submenu -->
<!-- Standard Footer for NUnit.org -->
<div id="footer">
Copyright © 2008 Charlie Poole. All Rights Reserved.
</div>
<!-- End of Footer -->
</body>
</html>
|