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

UWP单元测试应用启动后无测试执行,报错求助

UWP单元测试启动即关闭且报错“Value cannot be null. Parameter name: key”的解决办法

兄弟,我之前踩过这个UWP单元测试的坑,跟你遇到的报错一模一样!你已经试过清理.vs和bin/obj文件夹重新生成了,那给你几个我亲测有效的解决方向,挨个试试:

1. 检查测试项目的Package.appxmanifest配置

这个是最容易出问题的地方:

  • 确认Identity节点的Name、Publisher、Version三个属性都正确配置,必须和你的主应用项目保持一致,尤其是Publisher字段,一旦不匹配就会导致测试应用启动失败。
  • 检查是否遗漏了测试需要的权限,比如测试涉及文件读写、网络访问的话,要在Capabilities里勾选对应的选项。

2. 重置Visual Studio测试组件

有时候MSTest适配器的配置会出问题,试试重置:

  • 以管理员身份打开Visual Studio命令提示符(在开始菜单的Visual Studio文件夹里能找到)
  • 执行以下命令:
    vstest.console.exe /ResetSettings
    
  • 重启Visual Studio,再重新运行测试。

3. 排查测试方法的特性与代码

  • 确保所有测试方法都标记了[TestMethod]特性,测试类要标记[TestClass],不要遗漏。
  • 检查测试方法和类的命名,尽量避免特殊字符、空格或者中文(不是绝对不行,但很容易触发适配问题)。
  • 如果你的测试类继承了自定义基类,检查基类的构造函数或者初始化逻辑有没有抛出空引用异常,这会直接导致测试应用启动崩溃。

4. 尝试切换测试框架

如果MSTest适配器一直出问题,可以试试换个测试框架:

  • 给测试项目安装xUnit或者NUnit的NuGet包,再安装对应的测试适配器(比如xUnit.runner.visualstudio)
  • 把现有测试改成对应框架的格式(比如xUnit用[Fact]替代[TestMethod]),再运行测试,看能不能正常执行,以此排查是不是MSTest本身的适配问题。

5. 确认SDK版本兼容性

  • 检查测试项目的目标SDK版本和最低SDK版本是否和主应用项目一致,而且你的开发环境已经安装了对应的Windows SDK版本。
  • 如果SDK版本不匹配,会导致测试应用的运行时环境出问题,直接启动失败。

附你提供的错误日志:

[4/11/2018 7:36:42 Informational] ------ Run test started ------
[4/11/2018 7:37:05 Error] An exception occurred while invoking executor 'executor://mstestadapter/v2': Value cannot be null. Parameter name: key
[4/11/2018 7:37:09 Informational] ========== Run test finished: 0 run (0:00:26.8121266) ==========

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:39:39