Testing/Invoke-NAVTestsFromGit.ps1

Param(
    [Parameter(Mandatory=$true,Position=1)]
    [string]$RepoName,
    [Parameter(Mandatory=$true,Position=2)]
    $BuildNumber
)

Import-Module 'C:\TFs\Tfs Tools\Tecman.Tfs.Tools.psm1'

if (Test-Path "C:\Testing\$RepoName") {
    Remove-Item "C:\Testing\$RepoName\*" -Force
}

$InstanceName = '{0}{1}' -f $RepoName, $BuildNumber

$BaseBranch = Get-GitRepoBasePath (Get-Location)
if ($BaseBranch -eq '' -or $BaseBranch -eq $null) {
    $BaseBranch = Get-GitRepoBasePath $RepoName
}

Write-Host ("Building environment $InstanceName from {0}" -f (Get-Location))

try {
    Build-DevEnvironmentFromGit -RepoPath (Get-Location) -DatabaseServer localhost -ServiceTierServer localhost -IncludeTests Custom -InstanceName $InstanceName -BaseBranchPath $BaseBranch -DoNotOpenIDE -StopOnCompileErrors
}
catch {
    Remove-DevEnvironment -ServerInstance $InstanceName
    throw $_.Exception.Message
}

Import-NAVModulesForServerInstance -ServiceTier $InstanceName

Compile-NAVApplicationObject2 -ServerInstance $InstanceName -LogPath (Create-TempDirectory) -Filter "Type=Table" -Recompile -SynchronizeSchemaChanges Force

if (!(Test-Path 'C:\Testing\NAVResults')) {
    Create-EmptyDirectory 'C:\Testing\NAVResults'
}

$ResultsPath = "C:\Testing\NAVResults\$InstanceName.xml"

if (Test-Path $ResultsPath) {
    Remove-Item $ResultsPath -Force
}

Run-NAVTests -ServerInstance $InstanceName -ResultPath $ResultsPath

if (!(Test-Path "C:\Testing\$BuildNumber")) {
    Create-EmptyDirectory "C:\Testing\$BuildNumber"
}

Convert-NAVResultsToXUnit -NAVResultsPath $ResultsPath -XUnitPath "C:\Testing\$BuildNumber\Results.xml"