Frage

(Sorry für seltsame Titel, nicht kommen mit etwas besser ..)

Hintergrund

Ich benutze nunit-Konsole meine Baugruppen zu testen. Es wird wie folgt aufgerufen (vereinfacht):

function Test-ByNunit {
    param($assembly, $tempFile = 'c:\temp\nunit.xml')
    & <path-to-nunit-console> $assembly /nologo /xml:$tempFile @othparam 
}
Test-ByNunit c:\temp\myAssembly.dll

Ich habe kein Problem damit, es funktioniert gut.

Problem

nunit-console ausgeben sollte seine Nachrichten als bisher. Das bedeutet - wenn nicht erfasst, sollte es ihnen Bildschirm senden, sonst könnte es in der Datei gespeichert werden (Test-ByNunit $dll | set-content path)

Ich mag irgendwie Informationen zu jedem Testfall zurückzugeben, die ausgeführt wurde (die Informationen in der / xml-Datei gespeichert sind) in Form von Array von PSObject Objekten.

Frage

Haben Sie eine Spitze, wie die Informationen zurück und lassen noch nunit Ausgabe seine Nachrichten?
Wenn ich einfach die Ausgabe schreibt, wird die Funktion zurückgeben Array von Strings (Ausgabe von nunit-Konsole) und Array meiner Objekte. Dann Umleitung auf Ausgabedatei wird auch meine Objekte speichern, aber ich würde sie nur in Konsolenfenster wie angezeigt werden soll.

Die einzige Möglichkeit, das könnte Arbeit Gebrauch [ref] ist, aber ich mag es vermeiden.

(dies ist nicht nur über nunit-Konsole, aber natürlich ist es allgemeine Frage)

War es hilfreich?

Lösung

Wenn ich die Aufgabe bekam Recht dann sollte Out-Host helfen:

function Get-WithOutHost {
    # external output is redirected to the host
    cmd /c dir | Out-Host
    # normal output to be reused later
    Get-Process
}

# call    
$result = Get-WithOutHost

# now $result holds the data to use, external output is on the screen

EDIT: Natürlich ist dies nicht genug, wenn externe Ausgabe wiederverwendet werden sollte auch nicht nur gezeigt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top