2017-08-23 1 views
1

Ich kann keinen Rückruf oder eine gute Möglichkeit finden, festzustellen, ob NUnit-Tests in einem PowerShell-Skript ausgeführt werden. Ich habe die folgende Lösung gefunden, aber sie ist nicht solide. Jeder hat eine bessere Idee, wie ich das machen würde? Oder vielleicht gibt es eine schwarze Magie in NUnit, von der ich nichts weiß?

Vielen Dank im Voraus!Ermitteln, ob NUnit-Tests in PowerShell ausgeführt werden

#SLN1: Could check TestResults.xml file length and loop until we're sure tests have ran 
#- Then Send command to write to file in S3 Bucket. Then have server script check for a change to that bucket. 


$NUNIT_EXE = "C:\Program Files (x86)\NUnit\NUnit.ConsoleRunner.3.7.0\tools\nunit3-console.exe\" 
$TESTING_DLL = "C:\CITestFramework\bin\Debug\CITESTS.dll" 
#NUnit3 places test results where tests are ran from, so go local 
$TESTING_RESULT_FILE = "TestResult.xml" 


Write-Host "Removing old test results." 
If (Test-Path $TESTING_RESULT_FILE){ 
    Remove-Item $TESTING_RESULT_FILE 
} 


Write-Host "Starting Tests..." 
$PROCESS = Start-Process $NUNIT_EXE $TESTING_DLL 

$count = 0 
$prev_size = 0 
$wait = 5 
Do{ 


    If (Test-Path $TESTING_RESULT_FILE){ 
     $file = Get-Item $TESTING_RESULT_FILE 
     Write-Host "Size:",$file.Length 
     Write-Host "Prev Size:", $prev_size 
     if($file.Length -gt $prev_size){ 
      $prev_size = $file.Length 
      $wait = 5 
      $count = 0 
     } else { 
      if($file.Length -eq $prev_size){ 
       $count += 1 
       $wait = 15 
      } 
     } 
    }Else{ 
     Write-Host "File Does Not Exist Yet..." 
    } 
    Start-Sleep -s $wait 


}Until($count -eq 7) 
Write-Host "Tests completed." 

#//Write to S3 bucket 
+0

** Und das Hinzufügen von -Warten zum Start-Prozess funktioniert nicht. –

+0

'& $ NUNIT_EXE $ TESTING_DLL; if ($ LastExitCode -eq 0) {...} '? –

Antwort

Verwandte Themen