2014-02-11 3 views
0

실행하고자하는 특정 테스트 세트와이를 실행하기위한 환경을 정의하는 다중 인자를 가진 MSTEST을 호출하는 코드가 있습니다. 현재 코드는 다음과 같이 보입니다. 작품) :여러 개의 인자를 가진 process 객체 사용하기

Process.Start(Environment.GetEnvironmentVariable("VS110COMNTOOLS") 
    & "..\Ide\MSTEST.EXE", "/Testsettings:""" & rwSettings & """" 
    & " /Testcontainer:""" & rwContainer & """" & " /Resultsfile:""" 
    & rwResults & """") 

이전에 정의 된 다양한 변수. Visual Studio의 설치 위치를 보장 할 수 없으며 MSTEST 실행 파일에 액세스해야하기 때문에 GetEnvironmentVariable("VS110COMNTOOLS") 호출을 사용해야했습니다. "..\Ide\MSTEST.EXE"은 환경 변수가 나를 올바른 영역으로 만 가져 오므로 MSTEST을 찾기 전에 시스템을 IDE으로 이동해야합니다.

매우 우아하고 읽기 쉽지 않기 때문에이 프로세스를 실행하는 이벤트를 발생시킬 수 있기 때문에 정리하고 싶습니다. 그러나 Process 클래스가 인수를 처리하는 방법에 대해서는 documentation이 표시되지 않습니다. 내가 만든 Process 개체에 여러 인수 (이름에 공백이있을 수 있음)를 처리하게하려면 어떻게해야합니까?

답변

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()