2009-11-20 72 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 
相关问题