ASP.Net Core React运行npm test报错及测试资源管理器测试失败
问题解决方法
两个问题分别对应不同根因,按以下步骤操作即可修复:
1. 修复npm test提示Missing script: "test"错误
这个错误是执行命令时的工作目录不对导致的:
- 你的React主项目、Node单元测试项目是互相独立的npm项目,各自持有独立的
package.json,npm只会读取当前执行目录下package.json里的scripts配置。 - 如果你要跑单元测试项目的jest测试:先在控制台执行
cd 你的WebApp.UnitTest.njsproj所在的文件夹路径,切到单元测试项目根目录,先执行npm install安装jest等依赖,再执行npm test即可正常运行。 - 如果你切到React主项目的
ClientApp目录下执行npm test,跑的是react-scripts内置的测试命令,只会识别ClientApp/src目录下符合命名规则的测试文件,不会识别你单独放在单元测试项目里的测试代码。
2. 修复Visual Studio测试资源管理器中所有测试异常失败的问题
你手动指定TestAdapterPath调用vstest.console能正常跑通,说明测试代码、测试适配器本身没有问题,故障出在VS的配置或环境上,按以下顺序排查:
- 先装全测试项目依赖:在单元测试项目根目录执行
npm install,确保jest相关依赖已经完整安装到本地node_modules文件夹。VS不会自动为Node测试项目安装npm依赖,缺依赖时哪怕测试代码为空也会直接启动失败。 - 检查测试适配器路径配置:打开VS菜单「工具-选项-Node.js工具-测试」,确认配置的Node.js TestAdapter路径和你手动执行vstest.console时用的路径完全一致。注意你贴的命令里路径写的是
Comunity(少了一个m),VS2022社区版的默认正确路径应该包含Community文件夹,路径拼写错误会导致VS加载错/找不到测试适配器。 - 检查测试项目工作目录:右键单元测试项目打开「属性」面板,确认测试运行的工作目录设置为单元测试项目本身的根目录,不要指向解决方案根目录或Web主项目目录,否则运行时找不到本地安装的jest会直接失败。
- 清除缓存重试:关闭所有VS窗口,删除以下内容后重启VS:
- 单元测试项目下的
node_modules文件夹(删完重新执行npm install) - 解决方案根目录下的隐藏
.vs文件夹 - 本地缓存目录
C:\Users\你的用户名\AppData\Local\Microsoft\VisualStudio\17.0_随机后缀\TestResults下的所有文件
重启后重新生成解决方案,等测试资源管理器完成测试发现后再运行即可。
- 单元测试项目下的
补充说明:不需要额外添加
jest.config配置文件,Jest本身有默认的测试文件匹配规则,你手动跑vstest能正常运行已经验证了默认配置可用,只有需要自定义测试匹配规则、转译配置等场景时才需要新增该文件。
内容的提问来源于stack exchange,提问作者Kisar
相关产品推荐
相关产品推荐

