我有一段代码调用MSTEST
,其中有多个参数定义要运行的特定测试集以及运行它的环境。目前代码看起来像这样(有点乱,但它有效):
Process.Start(Environment.GetEnvironmentVariable("VS110COMNTOOLS")
& "..\Ide\MSTEST.EXE", "/Testsettings:""" & rwSettings & """"
& " /Testcontainer:""" & rwContainer & """" & " /Resultsfile:"""
& rwResults & """")
使用先前定义的各种变量。我不得不使用GetEnvironmentVariable("VS110COMNTOOLS")
调用,因为我不能保证Visual Studio的安装位置并且需要访问MSTEST
可执行文件。 "..\Ide\MSTEST.EXE"
是因为环境变量只会让我到达正确的区域,我需要让系统在找到IDE
之前导航到MSTEST
。
我想要清理它,因为它不是非常优雅或可读,而且因为我希望能够引发运行此过程的事件。但是,我没有看到documentation如何处理Process
类的参数。如何让我创建的Process
对象处理多个参数(名称中可能包含空格)?
答案 0 :(得分:1)
你可以试试这个:
Dim Testsettings As String = "/Testsettings:"""
Dim Testcontainer As String = " /Testcontainer:"""
Dim Resultsfile As String = " /Resultsfile:"""
Dim Quote As String = """"
Dim p As New Process()
p.StartInfo.FileName = Environment.GetEnvironmentVariable("VS110COMNTOOLS")
& "..\Ide\MSTEST.EXE"
p.StartInfo.Arguments = Testsettings & rwSettings & Quote & Testcontainer
& rwContainer & Quote & Resultsfile & rwResults & Quote
p.Start()