我为我们正在构建的应用程序编写了一套基本的 Selenium 集成测试。他们工作得很好。唯一的问题是应用程序需要预先部署并运行,然后测试才能运行。
如何从集成测试代码启动 ASP.NET MVC 应用程序?
我为我们正在构建的应用程序编写了一套基本的 Selenium 集成测试。他们工作得很好。唯一的问题是应用程序需要预先部署并运行,然后测试才能运行。
如何从集成测试代码启动 ASP.NET MVC 应用程序?
我想出了如何启动我正在运行的 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 时调用的方法中。我当然跑
public void Shutdown()
{
if(this.IisExpressProcess == null)
{
return;
}
this.IisExpressProcess.Stop();
}
在 TestFixtureTearDown 上。