7

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の上でテストを実行

+0

私はScreenCaptureJobでも同じ問題があります。 – bugmagnet

答えて

1

が不足している依存関係をインストールする機能に

ユーザーインターフェイス

>デスクトップエクスペリエンスインフラストラクチャ

を追加する必要が要求するMicrosoft Expression Encoderを使用します。

すでにこれを行ってもうまくいきませんでした。this articleを読むと、非常に役立ちます。ビデオ録画に使用されたコードのGitHubプロファイルへのリンクがあります。作者はScreenCaptureJobを使ってインタフェースを素晴らしいものにしています。

+0

ご返信ありがとうございます。両方の機能がサーバー上で有効になっています。最初に述べたように、テストはビルドサーバー上で実行されています。テストをローカルで実行すると、ScreenCaptureJobを使って録画するとうまくいきます。サーバー上では動作しません。 – jandig

関連する問題