The DotNetTestRunner is a command line application named '''!-TestRunner.exe-!'''.  It is included in the '''dotnet''' folder of the standard !-FitNesse-! distribution.

It can be used as follows:{{{
Usage: TestRunner [options] <host> <port> <page name> [assembly[;assembly]]
	-v	verbose: prints test progress to colsole
	-debug	prints FitServer actions to console
	-nopaths	prevents addition of assemblies from remote FitNesse
	-results <filename|'stdout'>	sends test results data to the specified file or the console}}}
The sections below document the options.  Expand them to learn more.

!*> '''Exit Values and the -nopaths Option'''
The exit value if !-TestRunner-! is the number of failures and exceptions.  So an exit value of 0 means that all the tests passed.  Without any options the execution of the !-TestRunner-! is not all that exciting.  As an example here is the command to execute all of the .NET FIT acceptance tests assuming that !-FitNesse-! is running on port 8080 of your computer: {{{C:\projects\fitnesse\dotnet>TestRunner localhost 8080 FitNesse.DotNet.SuiteAccep
tanceTests

C:\projects\fitnesse\dotnet>echo %ERRORLEVEL%
0

C:\projects\fitnesse\dotnet>TestRunner -nopaths localhost 8080 FitNesse.DotNet.S
uiteAcceptanceTests

C:\projects\fitnesse\dotnet>echo %ERRORLEVEL%
134}}}  Notice that the exit value (ERRORLEVEL) is 0, meanning all tests passed in the first execution.  In the second execution the '''-nopaths''' options prevented the assembly path from being loaded and the !-TestRunner-! was unable to find any of the Fixture classes.  This resulted in 134 errors.
*************!
!*> '''-v The Verbose Option'''
Now let's run the same tests using the -v (verbose option):{{{C:\projects\fitnesse\dotnet>TestRunner -v localhost 8080 FitNesse.DotNet.SuiteAc
ceptanceTests
Adding assemblies: C:\projects\fitnesse\dotnet\acceptanceTests.dll;C:\projects\f
itnesse\dotnet\eg.dll;C:\projects\fitnesse\dotnet\fit.dll;fitnesse.jar;classes
................................................................................
................................................................................
................................................................................
...............................
Test Pages: 27 right, 0 wrong, 0 ignored, 0 exceptions
Assertions: 271 right, 0 wrong, 18 ignored, 0 exceptions}}}  This generates readable output as you can see.
***********!
!*> '''-debug The Debug Option'''
This is an option that'll you should never need.  However, if you're encoutering unexpected behavior it may be usefull to see the protocol activity between !-FitNesse-! and !-TestRunner-!.  This -debug option will print all the verbose output from !-FitServer-! to the console. {{{C:\projects\fitnesse\dotnet>TestRunner -debug localhost 8080 FitNesse.DotNet.Sui
teAcceptanceTests
        HTTP request: GET /FitNesse.DotNet.SuiteAcceptanceTests?responder=fitCli
ent&includePaths=yes HTTP/1.1


Validating connection...
        ...ok

processing document of size: 5027
        results: 21 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 1542
        results: 8 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 1510
        results: 3 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2429
        results: 6 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2734
        results: 5 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2901
        results: 4 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 4162
        results: 1 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 4203
        results: 41 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 1987
        results: 6 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 3414
        results: 27 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2290
        results: 18 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2323
        results: 6 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2572
        results: 4 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 1675
        results: 2 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 3536
        results: 8 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2256
        results: 7 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 1451
        results: 1 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 4189
        results: 3 right, 0 wrong, 18 ignored, 0 exceptions
processing document of size: 1655
        results: 3 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 3315
        results: 18 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2263
        results: 3 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 1656
        results: 2 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 3755
        results: 39 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2845
        results: 3 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2351
        results: 3 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 3133
        results: 20 right, 0 wrong, 0 ignored, 0 exceptions
processing document of size: 2435
        results: 9 right, 0 wrong, 0 ignored, 0 exceptions

completion signal recieved
exiting...
End results: 271 right, 0 wrong, 18 ignored, 0 exceptions}}}
*************!
!*> '''-results The Results Option'''
Without this option the !-TestRunner-! will throw away all of the processed HTML test documents.  It can be very useful to keep them around so they be formatted into HTML or archived if you wish.  The '''-results''' option allows you to print the results either to standard output or to a file.  Here's the command to print them to standard output:{{{
0000002439TestFieldsPropertiesAndMethods
3 right, 0 wrong, 0 ignored, 0 exceptions
<div class="setup">
SNIP - Lots of HTML is ommited here.  You get the idea.
</div>

00000000000000000271000000000000000000180000000000}}}
****************!
!*> '''Formatting Test Results'''
The .NET !-TestRunner-! doesn't fotmat the test results for you but it genereates output of the required format.  Use the '''-results''' option to keep the results from a test execution.  Then you can use the Java '''[[!-FormattingOption-!][<UserGuide.FormattingOption]]''' class to do the rest. Here's an example of how to execute a test with the !-TestRunner-! and format the results into and HTML file:{{{C:\projects\fitnesse\dotnet>TestRunner -results dotnet.results localhost 8080 Fi
tNesse.DotNet.SuiteAcceptanceTests

C:\projects\fitnesse\dotnet>java -cp ..\fitnesse.jar fitnesse.runner.FormattingOption
 dotnet.results html dotnet.html localhost 8080 FitNesse.DotNet.SuiteAcceptanceT
ests}}}

Have a look at the HTML that was generated.
http://docs.fitnesse.org/files/dotnet/dotnet.html
************!