2009-11-20 62 views
5

我想在Visual Studio中做一個可憐的人與xUnit.Net集成,作爲後期構建事件。如何在Visual Studio(2008)中創建異步生成事件?

我想要的是當我按下Shift + F6(構建測試項目),成功構建後,它應運行xUnit.Console.exe並將結果輸出到html文件中,然後在瀏覽器內啓動html文件。

下面是我到目前爲止,它的工作,但不符合我的喜好(因爲瀏覽器將顯示爲排序模式對話框,我不能切換回和轉發/切換(使用Alt-Tab) 。Visual Studio和瀏覽器之間現在我必須關閉瀏覽器VS再次獲得焦點哪種吸

我後生成以下事件:

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

如何得到它,所以任何想法result.htm顯示在瀏覽器內而不是模式模式中?

進一步測試後,似乎任何shell /命令都以模態模式運行。例如,我嘗試了簡單的cmd.exe來彈出一個Command Shell。

我試着使用啓動C:\ WINDOWS \ IE7 \ IEXPLORE.EXE 「$(TARGETDIR)result.htm」,但沒有工作,要麼...

回答

8

這可能是一個有點迂迴的,但使用Windows Power-Shell來啓動該過程似乎可行。我這樣設置後生成事件的東西:

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

在這種情況下,Visual Studio會立即重新獲得控制權,而無需等待啓動過程完成。

+0

很酷,我會檢查出來。 – 2010-01-07 07:06:44

0

我是有由於我用的是路徑中有空格的一些問題與PowerShell的方法,而我決定去與這樣

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

一個VBScript後生成事件然後VBSCRIPT這樣啓動命令異步

'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 
相關問題