Pregunta

(Lo siento por título extraño, no han ocurrido nada mejor ..)

Fondo

Yo uso nunit-consola para probar mis montajes. Se llama así (simplificado):

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

No tengo ningún problema con esto, trabaja muy bien.

Problema:

nunit-console debe hacer salir sus mensajes como hasta ahora. Eso significa que - si no es capturado, debe enviarlos a la pantalla, de lo contrario podría ser almacenada en el archivo (Test-ByNunit $dll | set-content path)

Me gustaría volver alguna información sobre cada caso de prueba que se ejecutó (la información se almacena en el archivo / xml) en forma de matriz de objetos PSObject.

Pregunta

¿Tiene usted algún consejo de cómo devolver la información y todavía dejar sus mensajes de salida nunit?
Si yo simplemente escribo en la salida, la función devolverá matriz de cadenas (salida de nunit-consola) y la matriz de mis objetos. A continuación, la redirección de archivo de salida almacenará mis objetos así, pero me gustaría simplemente mostrarlos en la ventana de la consola.

La única posibilidad que podría funcionar es usar [ref], pero me gustaría evitarlo.

(esto no es sólo acerca nunit-consola, pero por supuesto que es cuestión general)

¿Fue útil?

Solución

Si tengo la tarea en ese momento Out-Host debería ayudar:

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: por supuesto esto no es suficiente si la salida exterior debe ser reutilizado, también, no sólo se muestra

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top