NUnit命令行执行报错及VS2019代码覆盖率选项位置咨询
解决NUnit控制台运行测试错误及Visual Studio 2019代码覆盖率选项问题
一、修复NUnit控制台运行测试的InvalidCastException错误
你遇到的这个错误,大概率是因为NUnit Console 3.11.1版本和你的.NET Core 3.1测试项目不兼容导致的。System.Web.UI.ICallbackEventHandler是.NET Framework中的类型,而你的测试项目基于.NET Core,旧版本的NUnit Console在处理.NET Core项目时可能会出现这类跨框架的类型转换问题。这里有两个解决方案:
方案1:使用dotnet test命令运行测试(推荐)
.NET Core项目更适合用官方的dotnet CLI工具来执行测试,兼容性更好。执行以下命令即可:
dotnet test "G:\LiveProjects\NUnitTestProject2\NUnitTestProject2\bin\Debug\netcoreapp3.1\NUnitTestProject2.dll"
这个命令会自动识别项目的框架版本,调用对应的测试运行器,避免版本兼容问题。
方案2:更新NUnit Console到兼容.NET Core 3.1的版本
如果你坚持要用nunit3-console.exe,需要把它更新到3.12.0及以上版本(NUnit从3.12版本开始完善了对.NET Core 3.x的支持)。你可以通过NuGet包管理器或者直接下载最新版本的控制台工具,替换掉旧版本后再重新执行原命令。
二、找到Visual Studio 2019中的代码覆盖率选项
你可以按照以下步骤操作:
- 打开Visual Studio 2019,切换到测试资源管理器(如果没显示,可以通过顶部菜单
测试 > 测试资源管理器打开) - 针对所有测试:点击测试资源管理器顶部"运行所有测试"按钮旁边的下拉箭头,选择运行所有测试并查看代码覆盖率
- 针对单个测试:右键点击你要测试的用例(比如Test1),在弹出菜单中选择运行测试并查看代码覆盖率
如果找不到这个选项,可能是你没安装对应的组件:
- 打开Visual Studio Installer,点击"修改"当前的VS安装
- 切换到"单个组件"标签,在搜索框输入"代码覆盖率",勾选对应的"代码覆盖率工具"组件
- 点击"修改"完成安装,重启VS后就能看到该选项了
内容的提问来源于stack exchange,提问作者Piyusha Naphade
相关产品推荐
相关产品推荐

