Domanda

(Ci scusiamo per strano titolo, non hanno venire con qualcosa di meglio ..)

Sfondo

Io uso NUnit-console per testare le mie assemblee. Si chiama come questo (semplificato):

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

Non ho alcun problema con questo, funziona benissimo.

problema

nunit-console dovrebbe produrre i suoi messaggi come finora. Ciò significa che - se non catturato, dovrebbe inviarli a schermo, altrimenti potrebbe essere memorizzata nel file (Test-ByNunit $dll | set-content path)

Mi piacerebbe tornare in qualche modo informazioni su ogni test-case che è stato eseguito (le informazioni sono memorizzate nel file / xml) in forma di array di oggetti PSObject.

Domanda

Avete qualche suggerimento come restituire informazioni e ancora lascia uscita NUnit i suoi messaggi?
Se ho semplicemente scrivo uscita, la funzione restituirà array di stringhe (uscita da NUnit-console) e la matrice dei miei oggetti. Poi reindirizzamento a file di output memorizzerà miei oggetti pure, ma mi piacerebbe solo visualizzarli nella finestra della console.

L'unica possibilità che potrebbe funzionare è quello di utilizzare [ref], ma vorrei evitarlo.

(questo non è solo di NUnit-console, ma ovviamente è questione generale)

È stato utile?

Soluzione

Se ho avuto il compito giusto allora Out-Host dovrebbe aiutare:

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: ovviamente questo non è sufficiente se l'output esterno deve essere riutilizzato, anche, non solo mostrato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top