能否针对Win UI 3类库中的类运行xUnit单元测试?
解决方案
你可以对该WinUI 3类库中的非UI类正常运行xUnit单元测试,报错的核心原因是测试项目的目标框架与WinUI 3类库的目标框架未完全匹配,按以下步骤调整即可:
步骤1:对齐测试项目目标框架
打开测试项目的.csproj文件,将<TargetFramework>节点的值修改为和WinUI 3类库完全一致的版本:
<TargetFramework>net5.0-windows10.0.19041</TargetFramework>
同时在同一个<PropertyGroup>节点下新增两个配置:
<UseWinUI>true</UseWinUI> <WindowsPackageType>None</WindowsPackageType>
步骤2:匹配依赖版本
在测试项目中安装Microsoft.WindowsAppSDK NuGet包,版本要和你的WinUI 3类库使用的Windows App SDK版本完全一致。
另外确认测试项目已经包含xUnit运行必需的基础包:
xunitxunit.runner.visualstudioMicrosoft.NET.Test.Sdk
步骤3:调整项目平台
WinUI 3不支持AnyCPU架构,打开Visual Studio的配置管理器,将测试项目和类库项目的目标平台统一设置为x64、x86或ARM64,不要使用AnyCPU。
额外说明
如果你要测试的是不涉及UI渲染、交互的纯业务逻辑类,调整完成后就可以直接编写常规xUnit测试用例,执行逻辑和普通.NET类库测试完全一致。如果需要测试UI控件的渲染、交互行为,则需要配合专门的UI自动化测试工具实现。
内容的提问来源于stack exchange,提问作者GarryP
相关产品推荐
相关产品推荐

