-
Notifications
You must be signed in to change notification settings - Fork 0
/
default.ps1
42 lines (32 loc) · 1.35 KB
/
default.ps1
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
properties {
$nunit = './packages/NUnit.2.5.10.11092/tools'
# IMPORTANT: We need to use ${env:blah} because the environent variable contains dots. I <3 PowerShell.
#
# Please see TeamCity Configuration.png, it shows how to set up the required NUnit environent variable
# for PowerShell.
#
$running_in_teamcity = ${env:teamcity.dotnet.nunitaddin} -ne $null
}
task default -depends Test
task TeamCity -precondition { return $running_in_teamcity } {
$framework = $nunit + '../nunit.framework.dll'
$name = [System.Reflection.AssemblyName]::GetAssemblyName($framework)
$nunitVersion = $name.Version.ToString(3)
New-Item $nunit\addins -Type Directory -Force
$teamCityAddinPath = ${env:teamcity.dotnet.nunitaddin}
Copy-Item $teamCityAddinPath-$nunitVersion.* -Destination $nunit\addins
}
task Test -Depends TeamCity, Compile, Clean {
New-Item test-results -Type Directory
$tests = Get-ChildItem -Path source/**/bin -Recurse -Include Tests*.dll
Exec { & "$nunit/nunit-console.exe" /nologo /xml:test-results/test.xml $tests }
}
task Compile -Depends Clean {
Exec { msbuild /target:Build /nologo /verbosity:Minimal TeamCityNUnit.sln }
}
task Clean {
foreach ($glob in ('source/**/bin', 'source/**/obj', 'test-results'))
{
Remove-Item $glob -recurse -force -ErrorAction SilentlyContinue
}
}