我可以 运行 xUnit 在我的 Win Ui 3 Class 库中针对 类 进行测试吗?

Can I run xUnit tests against classes in my Win Ui 3 Class Library?

我通过 Visual Studio 的添加新项目功能创建了一个全新的“Class 库(Win Ui 桌面)”库。

出于这个问题的目的,我将库的名称替换为 <MYLIBRARY>

创建“xUnit 测试项目”并选择“.NET Core 3.1(长期支持)”作为目标框架,然后将项目引用添加到 Class 库后,我得到了这些错误:

Error NU1201 Project <MYLIBRARY> is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project <MYLIBRARY> supports: net5.0-windows10.0.19041 (.NETCoreApp,Version=v5.0) <MYLIBRARY>.UnitTests

Error Project '..\<MYLIBRARY>\<MYLIBRARY>.csproj' targets 'net5.0-windows10.0.19041.0'. It cannot be referenced by a project that targets '.NETCoreApp,Version=v3.1'. <MYLIBRARY>.UnitTests C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1718

删除该测试项目,创建新的“xUnit 测试项目”并选择“.NET 5(当前)”作为目标框架,然后将项目引用添加到 Class 库后,我收到这些错误:

Error NU1201 Project <MYLIBRARY> is not compatible with net5.0 (.NETCoreApp,Version=v5.0). Project <MYLIBRARY> supports: net5.0-windows10.0.19041 (.NETCoreApp,Version=v5.0) <MYLIBRARY>.UnitTests

Error Project '..\<MYLIBRARY>\<MYLIBRARY>.csproj' targets 'net5.0-windows10.0.19041.0'. It cannot be referenced by a project that targets '.NETCoreApp,Version=v5.0'. <MYLIBRARY>.UnitTests C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1718

在单元测试项目的 .csproj 中,我尝试将 <TargetFramework>net5.0</TargetFramework> 更改为 <TargetFramework>net5.0-windows</TargetFramework>,但这并没有解决任何问题。

我浏览了各种网站,但我发现一些答案似乎在说我应该能够做我想做的事,因为“像 xUnit.net 这样的单元测试框架通常与库无关你的生产代码使用。”,没有解释如果它不工作如何让它工作,还有其他人说我不能做我想做的事,因为 xUnit 和 Win Ui 3 还不兼容,例如“WinUI 3 当前不支持任何 .NET 单元测试框架。”。

我对 Stack Overflow 进行了一些搜索 - 用于 Win Ui / xUnit 等 - 但 none 我发现的结果对我有用。

我可以针对我的 Class 库中的 类 运行 xUnit 单元测试吗?

(我可能会混淆一些东西,因为这是我的第一个 Win Ui 项目。)

由于您的 Win UI class 库目标 net5.0-windows10.0.19041,即 .NET 5 和 OS-特定版本,您的测试项目也应该以同样的目标为目标版本。

右击Visual Studio中的测试项目,select“编辑项目文件”,将目标框架更改为:

<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>

然后它应该构建。