NUnit for NAnt Build Runner
This section assumes, that you already have a NAnt build script with configured nunit2
task in it, and want TeamCity to track test reports without making any changes to the existing build script. Otherwise, consider adding NUnit as one of the steps for your build configuration.
In order to track tests defined in NAnt build via standard nunt2
task, TeamCity provides custom task implementation, and automatically replaces the original <nunit2>
task with its own task. Thus when the build is triggered, TeamCity starts TeamCity NUnit Test Launcher using own implementation of <nunit2>
. This allows you to leave your build script without changes and receive on-the-fly test reports in the TeamCity.
TeamCity nunt2
task implementation supports additional options that can be specified either as NAnt <property>
tasks in the build script, or as System Properties under Build Configuration-> Build Parameters.
The following options are supported for TeamCity <nunit2>
task implementation:
Property name | Description |
---|---|
| Run all tests regardless of the number of failed ones, and fails if at least one test has failed. |
| Sets desired runtime execution mode for .NET 2.0 on x64 machines. Supported values are x86, x64 and ANY(default). |
| Sets desired .NET Framework version. Supported values are v1.1, v2.0, v4.0. Default value is equal to NAnt target framework |
| Specifies which version of the NUnit runner to use. The value has to be specified in the following format: NUnit-<version> |
| Specifies the list of third-party NUnit addins used for NAnt build runner. |
| Set true if you want to run each assembly in a new process. |
TeamCity NUnit test launcher will run tests in the .NET Framework, which is specified by NAnt target framework, i.e. on .NET Framework 1.1, 2.0 or 4.0 runtime. TeamCity also supports test categories for <nunit2>
task.
Examples
Start tests form a single assembly files under x64 mode on .NET 2.0.
<property name="teamcity.dotnet.nant.nunit2.platform" value="x64" /> <nunit2> <formatter type="Plain" /> <test assemblyname="MyProject.Tests.dll" /> </nunit2>
Run all tests from category C1, but not C2.
<nunit2 verbose="true" haltonfailure="false" failonerror="true"> <formatter type="Plain" /> <test> <assemblies> <include name="dll.dll" /> </assemblies> <categories> <include name="C1" /> <exclude name="C2"/> </categories> </test> </nunit2>
Explicitly specify version on NUnit to run tests with. Note, that in this case, the following property should be added before nunit2 task call.
<property name="teamcity.dotnet.nant.nunit2.version" value="NUnit-2.4.10" /> <nunit2> <!--....--> </nunit2>