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

MSTest v2面向net5.0-windows运行WinUI 3单元测试失败问题咨询

问题原因
  1. TFM适配问题:默认MSTest适配器针对纯.NET TFM(如net5.0)做程序集加载逻辑设计,当目标框架改为带Windows版本后缀的net5.0-windows10.0.19041后,生成的程序集属于Windows专属桌面程序集,旧版本MSTest适配器无法识别这类程序集的依赖加载规则,即便文件物理存在也会判定为找不到文件。
  2. 架构不匹配:从日志可看出当前运行的是x86版本的测试主机testhost.x86.dll,如果你的WinUI3项目生成架构为x64,就会出现程序集加载失败,抛出System.InvalidOperationException异常。
  3. 依赖缺失:Project Reunion 0.8.x版本的WinUI3运行时需要特殊的初始化逻辑,默认MSTest配置没有集成对应的加载逻辑,导致运行测试时无法正常加载WinUI3相关依赖项。
解决方案
  • 调整测试项目配置:打开测试项目的.csproj文件,在PropertyGroup节点中补充以下配置项:
<PropertyGroup>
  <TargetFramework>net5.0-windows10.0.19041</TargetFramework>
  <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
  <Platforms>x64;x86</Platforms>
  <RuntimeIdentifiers>win10-x64;win10-x86</RuntimeIdentifiers>
  <UseWinUI>true</UseWinUI>
  <EnablePreviewFeatures>true</EnablePreviewFeatures>
  <WindowsPackageType>None</WindowsPackageType>
</PropertyGroup>
  • 统一测试主机架构:在Visual Studio顶部菜单栏选择测试 > 测试设置 > 默认处理器架构,选择和项目生成架构一致的选项(推荐优先选x64),不要使用默认的自动或x86选项。
  • 升级测试相关NuGet包:将以下包升级到对应版本:
    • Microsoft.NET.Test.Sdk 升级到17.0.0及以上
    • MSTest.TestAdapter 升级到2.2.10及以上
    • MSTest.TestFramework 升级到2.2.10及以上
      新版本的测试组件已经适配了带Windows后缀的TFM的程序集加载逻辑。
  • 若上述操作后仍无法运行,可在测试项目根目录新建.runsettings文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <TargetPlatform>x64</TargetPlatform>
    <DisableAppDomain>true</DisableAppDomain>
    <DisableParallelization>true</DisableParallelization>
  </RunConfiguration>
</RunSettings>

创建完成后在Visual Studio菜单栏选择测试 > 测试设置 > 选择测试设置文件,选中刚创建的.runsettings文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:15:01