TeamCityビルドサーバーで夜間にSeleniumテストを実行します。Expression Encoder 4 SDKでのSeleniumテストの実行がビルドサーバーで失敗する
夜間に断続的にテストが失敗することがあります。
失敗したテストのスクリーンショットでは実際には回答が得られていないので、失敗したテストの実行を記録します。
私は調査したいテストのテスト実行を記録するために以下を実装しました。
ScreenCaptureJob = new ScreenCaptureJob
{
CaptureRectangle = Screen.PrimaryScreen.Bounds,
ShowFlashingBoundary = true,
OutputPath = outputPath
};
ScreenCaptureJob.Start();
Debug.WriteLine($"Status: {ScreenCaptureJob.Status}");
Test code...
ScreenCaptureJob.Stop();
テストに失敗した場合は、キャプチャしたビデオをエンコードして保存します。 これは、ローカルでテストを実行するとうまく動作します。
ビルドサーバーでこれを実行すると、ScreenCaptureJobのステータスはNotStartedになります。
ディスクに一時ファイルが書き込まれていないため、テストが失敗したときにエンコードすることはありません。
MediaItem mediaItem = new MediaItem(fileName);
Job job = new Job();
job.MediaItems.Add(mediaItem);
job.ApplyPreset(Presets.VC1HD720pVBR);
job.OutputDirectory = outputPath;
job.Encode();
一時ファイルから新しいMediaItemを作成しようとすると例外が発生します。
TestCleanup method UITests.FailingTest.TestCleanup threw exception. Microsoft.Expression.Encoder.InvalidMediaFileException: Microsoft.Expression.Encoder.InvalidMediaFileException: File not found.
EE4がビルドサーバーにインストールされており、EE4プログラム自体でキャプチャをテストしました。
ScreenCaptureJobがサーバーで起動できない理由を知っている人はいますか? Windows Serverの上でテストを実行
私はScreenCaptureJobでも同じ問題があります。 – bugmagnet