Skip to content

Instantly share code, notes, and snippets.

@petrsvihlik
Last active December 1, 2019 20:42
Show Gist options
  • Save petrsvihlik/857671b3d937d010ccc67676733625d7 to your computer and use it in GitHub Desktop.
Save petrsvihlik/857671b3d937d010ccc67676733625d7 to your computer and use it in GitHub Desktop.
Running .NET Core 3 XUnit code coverage in AppVeyor using OpenCover and Codecov
# Add this to your YML file
install:
- cinst opencover.portable
- cinst codecov
test: off
test_script:
- ps: ./coverage.ps1
after_test:
- codecov -f coverage.xml
$buildConfig = if ($ENV:CONFIGURATION -eq $null) { "Release" } else { $ENV:CONFIGURATION }
$buildFolder = if ($ENV:APPVEYOR_BUILD_FOLDER -eq $null) { $PSScriptRoot } else { $ENV:APPVEYOR_BUILD_FOLDER }
$openCover = 'C:\ProgramData\chocolatey\lib\opencover.portable\tools\OpenCover.Console.exe'
$target = '-target:C:\Program Files\dotnet\dotnet.exe'
$targetArgs = '-targetargs:"test -c:' + $buildConfig + ' --logger:trx;LogFileName=results.trx /p:DebugType=full"'
$filter = '-filter:+[*]*-[*.Tests]*'
$output = '-output:' + $buildFolder + '\coverage.xml'
$register = if ($ENV:APPVEYOR -eq $true ) { '-register' } else { '-register:user' } # Magical parameter that breaks things
# Run OpenCover with all params
& $openCover $target $targetArgs $filter $register '-oldStyle' '-mergeoutput' $output
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment