2

(変なタイトルでごめんなさい、他にいいのが思いつきません..)

バックグラウンド

アセンブリをテストするために nunit-console を使用しています。これは次のように呼び出されます (簡略化):

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-consoleに限ったことではなく、もちろん一般的な質問です)

4

1 に答える 1

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

編集:もちろん、外部出力を再利用する必要がある場合は、これだけでは不十分です。

于 2010-05-06T10:40:02.200 に答える