我正在使用START-PROCESS
使用多个定义容器和测试设置的参数来调用MSTEST
,但是我觉得它在我连接它的方式上很窒息。在将此字符串放入START-PROCESS
?
Dim rwSettings As String = "\\PerfvsCtlr2\LoadtestSettings\PerfVSCtlr2forRemote.testsettings"
Dim rwContainer As String = "\\PerfvsCtlr2\LoadTest\LoadTestDefs\Heifer_Interactive_Peak_Workload.loadtest"
Dim rwResults As String = Workload.txtRwResults.Text
System.Diagnostics.Process.Start(Environment.GetEnvironmentVariable("VS110COMNTOOLS") & "..\Ide\MSTEST.EXE", "/Testsettings:""" & rwSettings & "" & " /Testcontainer:""" & rwContainer & "" & " /Resultsfile:""" & rwResults & "")
目前这个问题是未知的,因为process.start打开和关闭窗口太快,我无法捕获任何类型的错误消息。所以我的问题是双重的:
上述连接看起来是否正确?有没有办法可以获得有关最终执行字符串Process.Start
放在一起的更多信息或者它返回的错误消息?
答案 0 :(得分:2)
您可以使用Path.Combine
构建路径,使用String.Format
构建Process.Start
的参数:
Dim rwSettings As String = "\\PerfvsCtlr2\LoadtestSettings\PerfVSCtlr2forRemote.testsettings"
Dim rwContainer As String = "\\PerfvsCtlr2\LoadTest\LoadTestDefs\Heifer_Interactive_Peak_Workload.loadtest"
Dim rwResults As String = "Workload.txtRwResults.Text"
Dim fileName = System.IO.Path.Combine(Environment.GetEnvironmentVariable("VS110COMNTOOLS"), "Ide\MSTEST.EXE")
Dim args = String.Format("/Testsettings:{0} /Testcontainer:{1} /Resultsfile:{2}", rwSettings, rwContainer, rwResults)
System.Diagnostics.Process.Start(fileName, args)
然而,我必须承认,我不确定这是否会产生预期的结果。无论如何它可能会给你一个想法。
答案 1 :(得分:1)
我怀疑你的问题是你没有关闭你的引号,例如:
" /Testcontainer:""" & rwContainer & ""
应该是:
" /Testcontainer:""" & rwContainer & """"
请注意,末尾的双引号需要是四重引号。简单地说""
表示空字符串。
你应该用别的吗?大概。如果您使用StringBuilder
或String.Format
,它会更具可读性和效率,但即便如此,您仍需要修复结束引号问题。