私たちが構築しているアプリケーション用の 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 で。