对于我们中间的 VSTS(或 TFS)专家...
我遇到了 Microsoft Expression Encoder SDK 生成的记录文件显示为空的问题。上下文的一个小描述:
我们正在使用构建定义和多个发布定义设置的 VSTS 环境中工作。此流程正常运行。签入完成,构建触发器和完成,发布开始和完成,直到 UI 测试运行的最后一个版本,并以正确的结果结束。我们正在使用一个构建代理和一个单独的测试代理(都是 Windows 10 操作系统),它们位于同一个域中,并且可以毫无问题地相互连接。
我正在尝试在测试场景中包含录音。我在笔记本电脑(也用作构建代理)和测试代理上安装了 Microsoft Expression Encoder SP 2。在这两个系统上,我都可以毫无问题地手动录制。在本地(从 Visual Studio 本身)进行测试运行时,会相应地创建记录。
现在的问题:当测试代理开始测试运行时,会创建记录文件,但它们最终都是 4.93kb 的文件,没有任何内容。我可以打开它们,但它们的运行时间为 0:00。构建日志或事件查看器中没有显示错误:我得到的只是空文件。
背景的一些相关代码:
[SetUp]
public void Initialize()
{
testName = TestContext.CurrentContext.Test.Name;
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\Recordings";
Directory.CreateDirectory(path);
recorder = new ScreenCaptureJob
{
OutputScreenCaptureFileName = path + @"\" + testName + @".xesc",
CaptureRectangle = new Rectangle(0, 0, 1024, 768),
ShowFlashingBoundary = false,
CaptureMouseCursor = false,
CaptureFollowCursor = false,
CaptureLargeMouseCursor = false,
CaptureLayeredWindow = false,
ShowCountdown = false
};
Logger.Logger.Log(recorder.OutputScreenCaptureFileName);
if (File.Exists(recorder.OutputScreenCaptureFileName))
{
File.Delete(recorder.OutputScreenCaptureFileName);
}
recorder.Start();
/* Navigation to baseUrl */
Driver.Navigate().GoToUrl(startUrl);
WaitForUrl(startUrl);
recorder.Stop();
}
有没有人知道是什么(缺乏)魔法导致了这个问题?如果分析需要更多信息,我很乐意提供。
提前致谢!
-编辑- 回应 Wouter:我应该注意构建代理使用测试代理的管理员帐户登录,所以权限应该(可能?)不是问题。
-编辑 2- 我在整个过程中添加了一些日志记录,这显示了一些有趣的东西:
2017-12-14 10:51:29.322 C:\TestDrop*censored*\drop\bin\Debug\Recordings_LoadHomePage_ClickMenuQuestions_NavigatedToJobs.xesc
2017-12-14 10:51:29.322 posX : 0
2017-12-14 10:51:29.337 posY : 0
2017-12-14 10:51:29.337 width : 1024
2017-12-14 10:51:29.337 height: 768
2017-12-14 10:51:29.353 Size before starting: 0
2017-12-14 10:51:29.353 Status before starting: NotStarted
2017-12-14 10:51:29.353 Duration before starting: 00:00:00
2017-12-14 10:51:29.369 Framecount before starting: 0
2017-12-14 10:51:29.400 Size started : 0
2017-12-14 10:51:29.415 Status started : Running
2017-12-14 10:51:29.415 Duration started : 00:00:00.0111608
2017-12-14 10:51:29.415 Framecount started : 1
2017-12-14 10:51:44.315 Size close to ending: 0
2017-12-14 10:51:44.320 Status close to ending: Running
2017-12-14 10:51:44.324 Duration close to ending: 00:00:14.9117567
2017-12-14 10:51:44.332 Framecount close to ending: 190
2017-12-14 10:51:44.344 Size stopped : 0
2017-12-14 10:51:44.349 Status stopped : NotStarted
2017-12-14 10:51:44.354 Duration stopped : 00:00:00
2017-12-14 10:51:44.359 Framecount stopped : 0
显然,录音实际上正在运行。在 recorder.stop() 之前,帧数为 190,但文件大小仍为 0。在本地运行测试时,我得到以下信息:
2017-12-14 10:48:31.861 posX : 0
2017-12-14 10:48:31.867 posY : 0
2017-12-14 10:48:31.872 width : 1024
2017-12-14 10:48:31.877 height: 768
2017-12-14 10:48:31.882 Size before starting: 0
2017-12-14 10:48:31.888 Status before starting: NotStarted
2017-12-14 10:48:31.893 Duration before starting: 00:00:00
2017-12-14 10:48:31.898 Framecount before starting: 0
2017-12-14 10:48:31.948 Size started : 0
2017-12-14 10:48:31.952 Status started : Running
2017-12-14 10:48:31.956 Duration started : 00:00:00.0090997
2017-12-14 10:48:31.963 Framecount started : 0
2017-12-14 10:48:53.630 Size close to ending: 9998272
2017-12-14 10:48:53.634 Status close to ending: Running
2017-12-14 10:48:53.640 Duration close to ending: 00:00:21.6936283
2017-12-14 10:48:53.647 Framecount close to ending: 322
2017-12-14 10:48:53.669 Size stopped : 0
2017-12-14 10:48:53.675 Status stopped : NotStarted
2017-12-14 10:48:53.681 Duration stopped : 00:00:00
2017-12-14 10:48:53.685 Framecount stopped : 0
这里唯一的区别是文件大小,在结束之前是 9998272。我认为这确实表明存在权限问题,尽管我仍然对为什么可以创建视频但不写视频感到困惑......