You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019中如何配置RunSettings使视频与测试HTML报告同目录?

VS2019测试:视频录制器与自定义HTML日志同目录配置方案

问题背景

原test settings已弃用,计划将VS版本从2017升级至2019及以上。现有自定义HTML日志报告记录测试操作,在runsettings中配置Video Recorder数据收集器后出现以下问题:

  • 启用视频录制器时,视频生成在远程机器,但HTML文件无法生成
  • 禁用视频录制器时,HTML文件正常生成并附加,但视频被存放在单独的新文件夹
    已配置ResultsDirectory,尝试过修改目录、调整Azure发布流水线设置,均未解决。需要实现视频与HTML文件存放在同一文件夹,作为测试结果附件。

解决方案

1. 修正ResultsDirectory路径格式

原配置中的\.\TestResults路径解析存在异常,改为标准相对路径.\TestResults(基于解决方案目录),确保测试框架能正确识别统一结果目录。

2. 为视频录制器指定统一输出目录

在VideoRecorder的<Configuration>节点中添加<OutputDirectory>配置,明确指定与HTML日志一致的输出路径,强制视频文件生成到测试结果目录:

<Configuration>
  <MediaRecorder sendRecordedMediaForPassedTestCase="false" xmlns="" />
  <ScreenCaptureVideo bitRate="512" frameRate="2" quality="20" />
  <OutputDirectory>.\TestResults</OutputDirectory>
</Configuration>

3. 移除冲突的LegacySettings配置

原LegacySettings中的执行配置与VS2019原生测试框架逻辑冲突,建议注释或删除该节点,避免干扰数据收集器的路径处理:

<!-- <LegacySettings>
  <Execution>
    <TestTypeSpecific>
      <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
        <AssemblyResolution>
          <TestDirectory useLoadContext="true" />
        </AssemblyResolution>
      </UnitTestRunConfig>
    </TestTypeSpecific>
    <Timeouts testTimeout="2700000" />
  </Execution>
</LegacySettings> -->

4. 确认MSTest部署配置

保持DeploymentEnabled="False",避免测试部署生成临时目录;同时设置DeleteDeploymentDirectoryAfterTestRunIsComplete="False",确保结果文件完整保留。

5. Azure流水线配套调整(若使用)

在Azure发布流水线的测试任务中,指定修改后的runsettings文件,并在测试结果配置中设置与ResultsDirectory一致的路径,确保流水线能统一收集视频与HTML文件。

修改后的完整RunSettings示例

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
 - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x86</TargetPlatform>
    <BatchSize>1000</BatchSize>
    <TestSessionTimeout>72000000</TestSessionTimeout>
  </RunConfiguration>

  <!-- LegacySettings已注释,避免与VS2019原生配置冲突 -->
  <!-- <LegacySettings>
    <Execution>
      <TestTypeSpecific>
        <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
          <AssemblyResolution>
            <TestDirectory useLoadContext="true" />
          </AssemblyResolution>
        </UnitTestRunConfig>
      </TestTypeSpecific>
      <Timeouts testTimeout="2700000" />
    </Execution>
  </LegacySettings> -->

  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector uri="datacollector://microsoft/VideoRecorder/1.0"
        assemblyQualifiedName="Microsoft.VisualStudio.TestTools.DataCollection.VideoRecorder.VideoRecorderDataCollector, Microsoft.VisualStudio.TestTools.DataCollection.VideoRecorder, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        friendlyName="Screen and Voice Recorder">
        <Configuration>
          <MediaRecorder sendRecordedMediaForPassedTestCase="false" xmlns="" />
          <ScreenCaptureVideo bitRate="512" frameRate="2" quality="20" />
          <!-- 指定视频输出目录与测试结果目录一致 -->
          <OutputDirectory>.\TestResults</OutputDirectory>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>

  <!-- MSTest adapter -->
  <MSTest>
    <MapInconclusiveToFailed>False</MapInconclusiveToFailed>
    <CaptureTraceOutput>False</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
  </MSTest>
</RunSettings>

内容的提问来源于stack exchange,提问作者Test1234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:39:54