【发布时间】:2021-06-10 09:21:46
【问题描述】:
我想设置一个测试套件来为我的 Firebase 应用程序编写一个单元测试,该应用程序连接到在端口 8080 上本地运行的 Firestore 模拟器
这是我在 index.js 中的 firebase 配置
const functions = require("firebase-functions");
const dotenv = require('dotenv');
dotenv.config();
const emailFormatter = require("./emailFormatter");
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();
以下是我的functions.test.js
const admin = require('firebase-admin');
const serviceAccount = require('../../../fir-react-mailer-firebase-adminsdk-wfei1-0fff68d44e.json');
const testConfig = {
credential: admin.credential.cert(serviceAccount),
databaseURL: 'http://localhost:8080'
}
const testApp = admin.initializeApp(testConfig, 'test');
const projectConfig = {
projectId: 'fir-react-mailer',
databaseURL: 'http://localhost:8080',
}
const testF = require('firebase-functions-test')(projectConfig, serviceAccount);
const myFinctions = require('../index')
let db = admin.firestore(testApp)
这是我的package.json
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log",
"test": "jest"
},
"engines": {
"node": "12"
},
"dependencies": {
"chalk": "^4.1.0",
"dotenv": "^8.2.0",
"firebase-admin": "^8.9.0",
"firebase-functions": "^3.3.0",
"nodemailer": "^6.4.6"
},
"devDependencies": {
"@types/jest": "^26.0.20",
"firebase-functions-test": "^0.1.7",
"jest": "^26.6.3"
},
"private": true
}
在运行命令 npm run test 时,我在控制台上收到以下错误。
如果我做错了什么,请向我提出建议。我是 Firebase 的新手,所以整个设置很混乱。
【问题讨论】:
-
我不完全确定这是否会有所帮助,但看起来它正在尝试读取凭据文件?您是否尝试过创建一个或确保它在本地存在?这里还有更多人在处理类似的问题:stackoverflow.com/questions/54711038/…
标签: node.js firebase unit-testing google-cloud-firestore google-cloud-functions