【发布时间】:2021-07-12 23:29:20
【问题描述】:
我正在开发一个普通的 express 支持的 API 项目,该项目使用 firebase 函数来执行一些离线数据处理。 在许多情况下,API 会向 pub-sub 引发事件,该事件稍后会被云函数接收。 一个典型的例子是所有的聚合(日/月的总销售额)都被推送到云功能。
我正在寻找一个使用 firebase 模拟器的集成测试套件,我可以在其中从 API 层进行测试,直到触发云功能 及其对数据存储的更新。在模拟器上拥有集成测试套件为我在速度和成本方面提供了很好的优势以及快速的本地验证。
我正在使用 firebase 模拟器调用我的常规测试脚本
firebase emulators:exec "npm run test"
在运行测试时,我可以初始化所有 pubsub 函数。
随后我可以看到该消息也被推送到主题。
但是我没有看到相应的订阅 firebase 函数正在执行。我的firebase函数骨架是这样的
export const addIncentiveData = functions
.region("asia-south1")
.pubsub.topic("on_wf_data_added")
.onPublish(async (message, context) => {
const FUNCTION_NAME = `addIncentiveData`;
console.log(`[${FUNCTION_NAME}] Entering `)
const FUNCTION_NAME = `addIncentiveData`;
logger.info(`[${FUNCTION_NAME}] : The function was triggered at ${context.timestamp}`);
logger.debug(`[${FUNCTION_NAME}] : The message is ${JSON.stringify(message)}`);
const payLoad = JSON.parse(Buffer.from(message.data, "base64").toString());
logger.debug(`[${FUNCTION_NAME}] : The payload is ${JSON.stringify(payLoad)}`);
//some processing
logger.info(`[${FUNCTION_NAME}] : Completed processing`);
return;
});
【问题讨论】:
标签: firebase google-cloud-functions integration-testing google-cloud-pubsub firebase-tools