7

Eseguiamo test Selenium ogni notte sul nostro server di build TeamCity.Registrazione Esecuzione test selenio con Expression Encoder 4 SDK non riuscito sul server di build

Abbiamo alcuni test che falliscono in modo intermittente durante la nostra corsa notturna.

Le schermate dei test non riusciti non hanno fornito una risposta, quindi desidero registrare l'esecuzione dei test non riusciti.

Ho implementato quanto segue per registrare l'esecuzione di test dei test che voglio indagare.

 ScreenCaptureJob = new ScreenCaptureJob 
     { 
      CaptureRectangle = Screen.PrimaryScreen.Bounds, 
      ShowFlashingBoundary = true, 
      OutputPath = outputPath 
     }; 

     ScreenCaptureJob.Start(); 

     Debug.WriteLine($"Status: {ScreenCaptureJob.Status}"); 

     Test code... 

     ScreenCaptureJob.Stop(); 

Se il test fallisce, codifico il video catturato e lo salvi. Funziona bene quando eseguo il test localmente.

Tuttavia, quando eseguo questo sul server di generazione, ScreenCaptureJob ha uno stato di NotStarted.

Nessun file temporaneo viene scritto sul disco, quindi non c'è nulla da codificare quando il test fallisce.

 MediaItem mediaItem = new MediaItem(fileName); 
     Job job = new Job(); 
     job.MediaItems.Add(mediaItem); 
     job.ApplyPreset(Presets.VC1HD720pVBR); 
     job.OutputDirectory = outputPath; 
     job.Encode(); 

L'eccezione si verifica quando si tenta di creare un nuovo MediaItem dal file temporaneo.

TestCleanup method UITests.FailingTest.TestCleanup threw exception. Microsoft.Expression.Encoder.InvalidMediaFileException: Microsoft.Expression.Encoder.InvalidMediaFileException: File not found. 

EE4 è installato sul server di generazione e ho verificato l'acquisizione con il programma EE4 stesso.

Qualcuno ha un'idea del motivo per cui ScreenCaptureJob non viene avviato sul server?

+0

Ho anche lo stesso problema con ScreenCaptureJob. – bugmagnet

risposta

1

test in esecuzione su Windows Server richiedono di aggiungere la funzionalità

Interfacce utente

e

Infrastrutture> Desktop Experience

installare dipendenze mancanti richiedere d da Microsoft Expression Encoder.

Se l'hai già fatto e non funziona, leggi this article, è molto utile e c'è un collegamento al profilo GitHub con il codice utilizzato per la registrazione video. L'autore usa ScreenCaptureJob attraverso l'interfaccia che suona alla grande.

+0

Grazie per la risposta. Entrambe le funzionalità sono abilitate sul server. Come ho detto inizialmente, i test sono in esecuzione sul server di build. E la registrazione con ScreenCaptureJob funziona correttamente quando si eseguono i test localmente. Semplicemente non funziona sul server. – jandig