mocha测试Firebase Cloud Functions导入firebase-functions-test报错如何解决
问题原因
你的报错核心是版本不兼容:旧版firebase-functions-test@0.2.3会直接引用firebase-functions的内部路径./lib/encoder,而你当前安装的firebase-functions版本已经把这个内部路径从包导出规则里移除了,所以触发了ERR_PACKAGE_PATH_NOT_EXPORTED错误。
解决方案
1. 升级兼容版本的依赖
执行以下命令升级对应包:
# 升级生产依赖 npm install firebase-functions@latest firebase-admin@latest --save # 升级测试依赖 npm install firebase-functions-test@latest --save-dev
升级后firebase-functions-test会到0.3.x及以上版本,官方已经在这个版本修复了内部路径引用的问题。
2. 调整import语法
新版本firebase-functions-test的TS导入写法调整为默认导入,修正后的测试代码如下:
import test from "firebase-functions-test"; import { assert } from "chai"; // 初始化测试实例,本地用emulator测试不需要传参数 const testInstance = test(); describe("Sanity Check", () => { it("should pass", () => { assert.equal(0, 0); testInstance.cleanup(); }); });
3. 现有配置无需修改
你当前的package.json里的mocha测试命令、tsconfig.json配置都适配Node14运行环境,不需要额外调整。
修改完成后重新执行npm run test即可正常运行测试。
内容的提问来源于stack exchange,提问作者Cupid Chan
相关产品推荐
相关产品推荐

