1

私たちが構築しているアプリケーション用の Selenium 統合テストの基本スイートを作成しました。彼らはうまく機能します。唯一の問題は、テストを実行する前に、アプリケーションを事前にデプロイして実行する必要があることです。

統合テスト コードから ASP.NET MVC アプリケーションを起動するにはどうすればよいですか?

4

1 に答える 1

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 の開始時に呼び出されるメソッドにラップしました。もちろん走ります

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

 this.IisExpressProcess.Stop();
}

TestFixtureTearDown で。

于 2013-09-26T13:41:14.343 に答える