|
/* |
|
*========================================================== |
|
* Find test dlls and run them with nunit console runner |
|
* And also generates xml reports as nunit-result_*.xml |
|
* |
|
* call as: |
|
* vstestRunner( |
|
* pattern: 'SomeFolderNames/OrGlobPatterns/*.Tests.dll', |
|
* pattern: 'test.runsettings' (optional) |
|
* ) |
|
*========================================================== |
|
*/ |
|
|
|
def call(Map parameters = [:]) { |
|
|
|
assert parameters.pattern != null && parameters.pattern != 'null' : "pattern parameter can not be null!" |
|
|
|
if(parameters.settingsFile != null && parameters.settingsFile != 'null') { |
|
parameters.settingsFile = " /Settings:${parameters.settingsFile} " |
|
} else { |
|
parameters.settingsFile = '' |
|
} |
|
|
|
def files = findFiles(glob: parameters.pattern) |
|
def testFiles = files.join('\t ') |
|
|
|
opencoverVersion = '4.6.519' |
|
opencoverConsole = "OpenCover.4.6.519/tools/OpenCover.Console.exe" |
|
|
|
opencovertocoberturaVersion = '0.2.6.0' |
|
opencovertocoberturaConsole = 'OpenCoverToCoberturaConverter.0.2.6.0/tools/OpenCoverToCoberturaConverter.exe' |
|
|
|
println """ |
|
The function was called as: |
|
vstestRunner( |
|
pattern: ${parameters.pattern} |
|
) |
|
""" |
|
|
|
echo 'Installing Microsoft.TestPlatform' |
|
bat "nuget install Microsoft.TestPlatform -Version 15.8.0 -Source https://www.nuget.org/api/v2/" |
|
|
|
echo 'Installing ReportGenerator' |
|
bat "nuget install ReportGenerator -Version 3.1.2 -Source https://www.nuget.org/api/v2/" |
|
|
|
echo "Removing report files if any" |
|
powershell 'Remove-Item coverage-reports/*,TestResults/*.trx,TestCoverage.coverage,TestCoverage.coveragexml -Force -ErrorAction SilentlyContinue;' |
|
|
|
bat "Microsoft.TestPlatform.15.8.0\\tools\\net451\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe $testFiles ${parameters.settingsFile} /Logger:trx /EnableCodeCoverage" |
|
|
|
powershell """ |
|
|
|
\$env:CodeCoverageExe = "Microsoft.TestPlatform.15.8.0\\tools\\net451\\Team Tools\\Dynamic Code Coverage Tools\\amd64\\CodeCoverage.exe" |
|
# copy and rename the *.coverage to the DefaultWorkingDirectory and rename it to TestCoverage.coverage |
|
Get-ChildItem -Path \$env:WORKSPACE/TestResults -Filter *.coverage -Recurse -ErrorAction SilentlyContinue -Force | %{Join-Path -Path \$_.Directory -ChildPath \$_.Name } | Copy-Item -Destination \$env:WORKSPACE\\TestCoverage.coverage |
|
|
|
# convert binary to xml |
|
& "\$env:CodeCoverageExe" analyze /output:\$env:WORKSPACE\\TestCoverage.coveragexml \$env:WORKSPACE\\TestCoverage.coverage |
|
""" |
|
bat """ |
|
ReportGenerator.3.1.2\\tools\\ReportGenerator.exe "-reports:TestCoverage.coveragexml" "-targetdir:.\\coverage-reports" "-assemblyfilters:-nunit3.*;-nunit.*;-moq.*" |
|
""".trim() |
|
|
|
publishHTML( |
|
target: [ |
|
allowMissing: false, |
|
keepAll: true, |
|
reportDir: 'coverage-reports', |
|
reportFiles: 'index.htm', |
|
reportName: 'Code Coverage Report' |
|
] |
|
) |
|
} |