.NET Core 2.0.0 XUnit测试项目执行失败,测试运行被中止求助
我之前也碰到过类似的.NET Core 2.0 XUnit测试突然中止的问题,结合你给出的错误提示(“活动测试运行已中止。原因:.2.0.3545”)和测试日志,给你几个可行的排查和解决步骤:
检查.NET Core SDK版本兼容性
错误里的2.0.3545大概率和.NET Core SDK版本有关。首先用命令行执行dotnet --version查看本地安装的SDK版本,如果你的项目目标是.NET Core 2.0.0,但安装的SDK是更高版本(比如2.0.3),可能会出现版本不匹配的问题。你可以:- 在项目根目录创建
global.json文件,指定要用的SDK版本:{ "sdk": { "version": "2.0.0" } } - 或者如果允许的话,将项目的目标框架升级到
netcoreapp2.0.3(修改.csproj里的<TargetFramework>节点),匹配已安装的SDK。
- 在项目根目录创建
清理重建测试项目,清除缓存
项目的bin/obj文件夹缓存或者构建残留可能导致测试运行异常:- 手动删除测试项目下的
bin和obj文件夹; - 用命令行执行:
dotnet clean dotnet restore dotnet build - 再尝试运行
dotnet test或者在Visual Studio里重新运行测试。
- 手动删除测试项目下的
更新xUnit相关NuGet包
旧版本的xUnit运行器可能和.NET Core 2.0不兼容,检查你的测试项目.csproj里的以下包版本,确保是支持.NET Core 2.0的稳定版本(比如xUnit 2.3.1+,xunit.runner.visualstudio 2.3.1+):<PackageReference Include="xunit" Version="2.3.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" /> <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />更新后执行
dotnet restore重新还原依赖。确认测试项目的目标框架配置
打开测试项目的.csproj文件,确认<TargetFramework>节点是netcoreapp2.0,没有写错或者配置多个冲突的目标框架:<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup>修复Visual Studio测试组件(仅Visual Studio环境)
如果在Visual Studio里运行测试也失败,可能是测试运行器组件损坏:- 打开Visual Studio Installer,选择“修改”你的VS版本;
- 确保勾选了“.NET Core跨平台开发”和“测试工具”组件;
- 点击“修改”完成安装,或者直接选择“修复”Visual Studio。
按照这些步骤逐一排查,应该能解决测试运行中止的问题。
内容的提问来源于stack exchange,提问作者Maxime Gélinas

