在构建服务器上使用Expression Encoder 4 SDK记录Selenium测试执行失败

时间:2016-03-31 13:00:27

标签: c# selenium teamcity windows-server-2012-r2 expression-encoder-4

我们每晚都在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无法在服务器上启动?

1 个答案:

答案 0 :(得分:1)

在Windows Server上运行测试需要您添加功能

  

用户界面

  

基础设施>桌面体验

安装Microsoft Expression Encoder所需的缺少的依赖项。

如果你已经这样做并且它不起作用,请阅读this article,它非常有用,并且有一个指向GitHub配置文件的链接,其中包含用于视频录制的代码。作者使用ScreenCaptureJob通过界面听起来很棒。