我们每晚在 TeamCity 构建服务器上运行 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 无法在服务器上启动?