7

ビルド後のイベントとして、Visual Studio 内から xUnit.Net との貧弱な統合を行おうとしています。

私が欲しいのは、Shift+F6 (テスト プロジェクトのビルド) を押すと、ビルドが成功した後、xUnit.Console.exe を実行し、結果を html ファイルに出力し、その後ブラウザー内で html ファイルを起動することです。

以下は私がこれまでに得たものであり、うまくいきますが、私の好みではありません (ブラウザが一種のモーダル ダイアログとして表示され、Visual Studio とブラウザ. 今、VS のブラウザを閉じて、再びフォーカスを取得する必要があります。

以下の私のポストビルドイベント:

"$(SolutionDir)\Components\xUnit.net\xunit.console.exe" "$(TargetPath)" /html "$(TargetDir)result.htm"
"$(TargetDir)result.htm"

result.htm がモーダルモードではなくブラウザ内に表示されるようにする方法についてのアイデアはありますか?

さらにテストした結果、実行されたシェル/コマンドはすべてモーダル モードで実行されたようです。たとえば、コマンド シェルをポップアップする単純な cmd.exe を試しました。

start C:\Windows\IE7\iexplore.exe "$(TargetDir)result.htm" を使用してみましたが、どちらも機能しませんでした...

4

2 に答える 2

9

これは少し遠回りかもしれませんが、Windows の power-shell を使用してプロセスを開始するとうまくいくようです。ビルド後のイベントを次のように設定しました。

powershell start-process <actual-command-line-to-run>

この場合、Visual Studio は、開始されたプロセスが完了するのを待たずに、すぐに制御を取り戻します。

于 2009-12-21T09:13:02.567 に答える
0

使用していたパスにスペースがあるため、powershell メソッドに問題がありました。代わりに、このような vbscript ポスト ビルド イベントを使用することにしました。

Tests.vbs """$(DevEnvDir)mstest.exe"""

次に、このような vbscript を実行してコマンド async を起動します

'args
mstest = WScript.Arguments(0)     'mstest path
Set WshShell = WScript.CreateObject("WScript.Shell")   'Create Windows Shell Object
WshShell.Run "Tests.bat """ & mstest & """", 0, false   'Run Async
Set WshShell = Nothing
于 2017-06-26T14:17:52.043 に答える