2010-05-06 6 views
2

(Désolé pour le titre étrange, ne suis pas venu avec rien de mieux ..)sortie de exe externe et mes objets personnalisés dans powershell

Contexte

J'utilise nunit-console pour tester mes ensembles . Il s'appelle comme ceci (simplifié):

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 

Je n'ai aucun problème avec ceci, cela fonctionne très bien.

Problème

nunit-console ses messages devrait afficher comme jusqu'à présent. Cela signifie - si non capturé, il devrait les envoyer à l'écran, sinon il pourrait être stocké dans le fichier (Test-ByNunit $dll | set-content path)

Je voudrais retourner des informations sur chaque cas de test qui a été exécuté (l'information est stockée dans le fichier/xml) sous forme de tableau d'objets PSObject.

Question

Avez-vous une astuce comment retourner l'info et laisser encore sortie nunit ses messages?
Si je l'écris simplement en sortie, la fonction retournera un tableau de chaînes (sortie de nunit-console) et un tableau de mes objets. Ensuite, la redirection vers le fichier de sortie stockera également mes objets, mais j'aimerais les afficher dans la fenêtre de la console.

La seule possibilité qui pourrait fonctionner est d'utiliser [ref], mais je voudrais l'éviter.

(ce qui est non seulement nunit-console, mais bien sûr, il est question générale)

Répondre

2

Si je suis la bonne tâche alors Out-Host devrait aider:

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: Bien sûr, cela est pas assez si la sortie externe doit être réutilisée, aussi, non seulement affichée

+0

Hm, il semble que j'ai manqué quelque chose de basique;) Je suppose qu'il n'y a pas de meilleure réponse. – stej

Questions connexes