1

我已經爲我們正在構建的應用程序編寫了一套基本的Selenium集成測試套件。他們的工作很棒。唯一的問題是應用程序需要在測試運行之前進行預先部署和運行。如何從集成測試代碼啓動我的ASP.NET應用程序?

如何從集成測試代碼啓動ASP.NET MVC應用程序?

回答

1

我想通了如何啓動我的應用程序我運行MS生成並基本上傳遞的路徑,標誌和開始一個新的IISExpress過程中承載它:

ProcessStartInfo processStartInfo = new ProcessStartInfo() 
{ 
    ErrorDialog = false, 
    CreateNoWindow = true, 
    UseShellExecute = false, 
    Arguments = string.Format("/path:\"{0}\" /port:{1}", this.pathToSite, this.portNumber) 
}; 

string path = (!string.IsNullOrEmpty(processStartInfo.EnvironmentVariables["programfiles(x86)"]) ? processStartInfo.EnvironmentVariables["programfiles(x86)"] : processStartInfo.EnvironmentVariables["programfiles"]) + "\\IIS Express\\iisexpress.exe"; 

processStartInfo.FileName = path; 

this.iisProcess = new Process 
{ 
    StartInfo = processStartInfo 
}; 

this.iisProcess.Start(); 

希望這有助於未來的傢伙。否則,我會把這裏留下來供我自己參考。我將所有這些包裝在啓動TestFixtureSetup時調用的方法中。當然我在TestFixtureTearDown上運行

public void Shutdown() 
{ 
if(this.IisExpressProcess == null) 
{ 
    return; 
} 

this.IisExpressProcess.Stop(); 
} 

+0

有沒有辦法使用SSL來做到這一點? –

+0

我沒有看到Stop()方法。 Close()不會停止IIS Express並且Kill拋出InvalidOperationException –

相關問題