Skip to content

Commit

Permalink
Added psake build script to clean, build and run unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisMissal committed Apr 3, 2012
1 parent df48d1a commit 397bac7
Show file tree
Hide file tree
Showing 5 changed files with 798 additions and 0 deletions.
2 changes: 2 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
echo off
.\tools\psake\psake.bat %*
53 changes: 53 additions & 0 deletions tools/nunit/SimpleSummary.xslt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>

<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="test-results">
<xsl:text>Tests run: </xsl:text>
<xsl:value-of select="@total"/>
<xsl:text>, Errors: </xsl:text>
<xsl:value-of select="@errors"/>
<xsl:text>, Failures: </xsl:text>
<xsl:value-of select="@failures"/>
<xsl:text>, Not run: </xsl:text>
<xsl:value-of select="@not-run"/>
<xsl:text>, Time: </xsl:text>
<xsl:value-of select="test-suite/@time"/>
<xsl:text> seconds
</xsl:text>
<xsl:text>
</xsl:text>

<xsl:if test="//test-case[failure]">
<xsl:text>Failures:
</xsl:text>
</xsl:if>
<xsl:apply-templates select="//test-case[failure]"/>
<xsl:text>
</xsl:text>

<xsl:if test="//test-case[@executed='False']">
<xsl:text>Tests not run:
</xsl:text>
</xsl:if>
<xsl:apply-templates select="//test-case[@executed='False']"/>
<xsl:text disable-output-escaping="yes"/>
</xsl:template>

<xsl:template match="test-case">
<xsl:value-of select="position()"/>
<xsl:text>) </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>
</xsl:text>
<xsl:value-of select="child::node()/message"/>
<xsl:text>
</xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
45 changes: 45 additions & 0 deletions tools/psake/default.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Properties {
$base_dir = resolve-path .\..\..\
$packages_dir = "$base_dir\packages"
$build_artifacts_dir = "$base_dir\build"
$solution_name = "$base_dir\WebApiContrib.sln"
$nunit_runner = "$packages_dir\NUnit.Runners.2.6.0.12051\tools"
$nunit_build_destination = "$build_artifacts_dir\tools\nunit"
$nunitConsole = "$nunit_build_destination\nunit-console.exe"
}

Task Default -Depends BuildWebApiContrib, PrepareForTest, RunUnitTests

Task BuildWebApiContrib -Depends Clean, Build

Task Clean {
Exec { msbuild $solution_name /v:Quiet /t:Clean /p:Configuration=Release }
}

Task Build -depends Clean {
Exec { msbuild $solution_name /v:Quiet /t:Build /p:Configuration=Release /p:OutDir=$build_artifacts_dir }
}

Task PrepareForTest {
$tools_folder = "$build_artifacts_dir\tools"
if (Test-Path $tools_folder) {
Remove-Item $tools_folder -Force -Recurse
}
Copy-Item "$nunit_runner\*" $nunit_build_destination
Copy-Item "$nunit_runner\lib\*" "$nunit_build_destination\lib"
}

Task RunUnitTests -depends PrepareForTest, Build {
$test_result = "$build_artifacts_dir\UnitTestsResult.xml"

& "$nunitConsole" "$build_artifacts_dir\WebApiContribTests.dll" /nologo /nodots "/xml=$test_result"

if ($lastexitcode -gt 0)
{
throw "{0} unit tests failed. See {0} for a simple summary." -f $lastexitcode, $test_result
}
if ($lastexitcode -lt 0)
{
throw "unit test run was terminated by a fatal error. See {0} for a simple summary." -f $test_result
}
}
1 change: 1 addition & 0 deletions tools/psake/psake.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {Import-Module '.\tools\psake\psake.psm1'; invoke-psake .\tools\psake\default.ps1 %1 -parameters @{"version"="'%2'";"appPrefix"="'%3'";"filePath"="'%4'"}; if ($lastexitcode -ne 0) {write-host "ERROR: $lastexitcode" -fore RED; exit $lastexitcode} }"
Loading

0 comments on commit 397bac7

Please sign in to comment.