バッチファイルが実行されていない場合は、そのバッチファイルを実行する必要があることを確認するWindowsサービスを作成する必要があるシナリオがあります。
さらに、私のバッチファイルは、アプリケーションのチェックアウトにSeleniumを使用した自動化に使用されます。
そのサービスを作成すると、どういうわけかバッチファイルが実行されず、セレンを起動できません。タスクマネージャーで同じものを見ると、cmdインスタンスが実行されていることがわかりますが、セレンを実行できません。
私のプロジェクトのコード:タイマーは1分に設定されています
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (!File.Exists(ConfigurationManager.AppSettings["testFilePath"])) //To check whether batch file is running or not
{
System.Diagnostics.Process proc = new System.Diagnostics.Process(); // Declare New Process
proc.StartInfo.FileName = ConfigurationManager.AppSettings["BatchFilePath"];
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
}
}
バッチファイルは次のようになります。
copy C:\AutomatedTests\AHD\testingWS.txt C:\AutomatedTests\AHD\AHDExecutionService\testingWS.txt
start cmd /k java -jar "C:\AHS_Automation\Release\UnifiedBillingSystem\Selenium RC\selenium-server-1.0.3\selenium-server.jar"
このコードは、バッチファイルが実行されていない場合はサービスが実行を開始し、そうでない場合は何も実行しないことを定期的にチェックします。