Запись выполнения теста Selenium с Expression Encoder 4 SDK не выполняется на сервере сборки
Мы запускаем тесты Selenium каждый вечер на нашем сервере сборки TeamCity.
У нас есть некоторые тесты, которые периодически терпят неудачу во время нашей ночной пробежки.
Скриншоты неудачных тестов на самом деле не дали ответа, поэтому я хочу записать выполнение неудачных тестов.
Я реализовал следующее, чтобы записать выполнение тестов, которые я хочу исследовать.
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 не запускается на сервере?
1 ответ
Запуск тестов на Windows Server требует добавления функции
Пользовательские интерфейсы
а также
Инфраструктура> Рабочий стол
установить недостающие зависимости, необходимые для Microsoft Expression Encoder.
Если вы уже сделали это, и это не работает, прочитайте эту статью, это очень полезно, и есть ссылка на профиль GitHub с кодом, используемым для записи видео. Автор использует ScreenCaptureJob через интерфейс, который звучит великолепно.