Test - Run NUnit

Octopus.Script exported 2014-05-06 by bobjwalker belongs to ‘NUnit’ category.

Runs NUnit tests from a list of assemblies.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

NUnit path

NUnitExePath

The path to nunit-console.exe. If this is not provided it will be assumed that the executable is on the PATH. Example: C:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console.exe.

Working directory

NUnitWorkingDirectoryPath

The folder that contains the test assemblies. Generally this will be bound to an output variable from a previous step. Example: #{Octopus.Action[Deploy integration tests].Output.Package.InstallationDirectoryPath}

Test assemblies

NUnitTestAssemblies

A semicolon-separated list of assembly names containing tests. Example: MyCompany.IntegrationTests.dll; MyCompany.SmokeTests.dll

Additional arguments

NUnitAdditionalArgs = /nodots

Additional arguments to the NUnit command-line tool. For a full list of supported flags and options see the NUnit documentation.

Script body

Steps based on this template will execute the following PowerShell script.

Write-Output "Running NUnit tests..."

$exePath = '"' + $NUnitExePath + '"'
if (-not $exePath) {
    $exePath = "nunit-console.exe"
}

$runNUnit = "& $exePath /out:TestStdOut.txt /err:TestStdErr.txt $NUnitAdditionalArgs"

$NUnitTestAssemblies.Split(";") | ForEach {
    $asm = $_.Trim()
    Write-Output "Including assembly $asm"
    $runNUnit += " $asm"
}

cd $NUnitWorkingDirectoryPath

iex $runNUnit
$nunitExit = $lastExitCode

New-OctopusArtifact -Path TestResult.xml
New-OctopusArtifact -Path TestStdOut.txt
New-OctopusArtifact -Path TestStdErr.txt

exit $nunitExit

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "edcacbb5-6776-445a-9555-576ee4c3e2d6",
  "Name": "Test - Run NUnit",
  "Description": "Runs NUnit tests from a list of assemblies.",
  "Version": 10,
  "ExportedAt": "2014-05-06T04:23:41.674+00:00",
  "ActionType": "Octopus.Script",
  "Author": "bobjwalker",
  "Parameters": [
    {
      "Name": "NUnitExePath",
      "Label": "NUnit path",
      "HelpText": "The path to `nunit-console.exe`. If this is not provided it will be assumed that the executable is on the PATH. Example: _C:\\Program Files (x86)\\NUnit 2.6.3\\bin\\nunit-console.exe_.",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "NUnitWorkingDirectoryPath",
      "Label": "Working directory",
      "HelpText": "The folder that contains the test assemblies. Generally this will be bound to an output variable from a previous step. Example: _#{Octopus.Action[Deploy integration tests].Output.Package.InstallationDirectoryPath}_",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "NUnitTestAssemblies",
      "Label": "Test assemblies",
      "HelpText": "A semicolon-separated list of assembly names containing tests. Example: _MyCompany.IntegrationTests.dll; MyCompany.SmokeTests.dll_",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "NUnitAdditionalArgs",
      "Label": "Additional arguments",
      "HelpText": "Additional arguments to the NUnit command-line tool. For a full list of supported flags and options see [the NUnit documentation](http://www.nunit.org/index.php?p=consoleCommandLine&r=2.6.3).",
      "DefaultValue": "/nodots",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptBody": "Write-Output \"Running NUnit tests...\"\n\n$exePath = '\"' + $NUnitExePath + '\"'\nif (-not $exePath) {\n    $exePath = \"nunit-console.exe\"\n}\n\n$runNUnit = \"& $exePath /out:TestStdOut.txt /err:TestStdErr.txt $NUnitAdditionalArgs\"\n\n$NUnitTestAssemblies.Split(\";\") | ForEach {\n    $asm = $_.Trim()\n    Write-Output \"Including assembly $asm\"\n    $runNUnit += \" $asm\"\n}\n\ncd $NUnitWorkingDirectoryPath\n\niex $runNUnit\n$nunitExit = $lastExitCode\n\nNew-OctopusArtifact -Path TestResult.xml\nNew-OctopusArtifact -Path TestStdOut.txt\nNew-OctopusArtifact -Path TestStdErr.txt\n\nexit $nunitExit\n",
    "Octopus.Action.Script.Syntax": "PowerShell"
  },
  "Category": "NUnit",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/test-run-nunit.json",
  "Website": "/step-templates/edcacbb5-6776-445a-9555-576ee4c3e2d6",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Tuesday, May 6, 2014