Nogen gange mangler jeg en måde hvorpå jeg kan køre xunit tests fra powershell, hvor jeg angiver hvilke filer som skal inkluderes i testen. Jeg er sikker på at der findes andre måder, hvorpå dette kan lade sig gøre (måske endda indbygget i console runneren), dog har jeg altid haft success med dette lille script

    $includeFilters = "*.Tests.dll","*.Testing.dll"
    $consoleRunner =   Get-ChildItem -Path $PSScriptRoot\..\ -Recurse  -Filter "xunit.console.exe"
    $testFiles = Get-ChildItem -Path $PSScriptRoot\..\src -Include $includeFilters -Exclude $excludeFilters -Recurse | ?{ $_.fullname -notmatch "\\obj\\?" }

    Write-Host "Root dir for testing"  $PSScriptRoot
    Write-Host "Include test filters pattern"  $includeFilters
    Write-Host "Found xunit console runner at" $consoleRunner.FullName
    Write-Host "Found" $testFiles.Count "to test"

    foreach($testFile in $testFiles)
    {
       $path = $testFile.FullName
       $runner = $consoleRunner.FullName
       $command = $runner +" " + $path

       $path

       iex $command
    }

Man skal selv fortælle to ting i starten:

  1. Hvad skal inkluderes - dette gøres med $includeFilters variablen
  2. Hvor ligger console runneren - dette gøres med $consoleRunner variablen

Resten af scriptet gør brug af disse to variabler. Der kunne sikkert godt laves nogle if checks som fortæller om alt kan findes, men jeg bruger altid scriptet steder hvor jeg ved at alt findes.

Scriptet er til fri afbenyttelse.