2010-05-06 4 views
2

(Извините за странное название, не придумали ничего лучшего ..)Выход из внешнего ехе и мои пользовательские объекты в PowerShell

фон

Я использую NUnit-консоль, чтобы проверить мои сборки , Он называется так (упрощенно):

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 

У меня нет проблем с этим, он отлично работает.

Проблема

nunit-console должен выводить свои сообщения, как до сих пор. Это означает, что если он не был захвачен, он должен отправить их на экран, иначе он может быть сохранен в файле (Test-ByNunit $dll | set-content path)

Я хотел бы как-то вернуть информацию о каждом тестируемом случае (информация хранится в файле файл/xml) в виде массива PSObject объектов.

Вопрос

У вас есть совет, как вернуть информацию и оставить выходные NUnit свои сообщения?
Если я просто напишу его для вывода, функция вернет массив строк (вывод из nunit-console) и массив моих объектов. Тогда перенаправление на выходной файл также сохранит мои объекты, но я хотел бы просто отобразить их в окне консоли.

Единственная возможность, которая может работать, - использовать [ref], но я бы хотел ее избежать.

(это не только NUnit-консоль, но, конечно, это вообще вопрос)

ответ

2

Если я получил задание прямо тогда Out-Host должно помочь:

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: это, конечно, недостаточно, если внешний вывод также должен быть повторно использован, а не только

+0

Хм, кажется, я пропустил что-то основное;) Думаю, нет лучшего ответа. – stej

 Смежные вопросы

  • Нет связанных вопросов^_^