cypress - 赛普拉斯:“任务”事件尚未在插件文件中注册。您必须在使用 cy.task() 之前注册它
问题描述
我正在使用 Cypress 为我的 Web 应用程序编写端到端测试。在我的测试中,我正在尝试创建一个任务https://docs.cypress.io/api/commands/task。但它抛出了一个错误。这就是我所做的。
我在 plugins/index.js 文件中声明了一个任务,如下所示。
module.exports = (on) => {
on("task", {
setTestId(id) {
testId = id;
return null;
},
getTestId() {
return testId;
}
});
};
然后我在测试中使用任务如下。
cy.task('setTestId', 7654321);
当我运行测试时,我收到以下错误。
The 'task' event has not been registered in the plugins file. You must register it before using cy.task()
如您所见,我也尝试了此解决方案,赛普拉斯任务失败并抱怨任务事件尚未在插件文件中注册。它也没有工作。我的代码有什么问题,我该如何解决?
解决方案
您缺少一些格式(“:”和“=>”等)。尝试这个:
module.exports = (on) => {
on("task", {
setTestId: (id) => {
testId = id;
return null;
},
getTestId: () => {
return testId;
}
});
};
像你一样设置testId:
cy.task('setTestId', 7654321);
当您要检索 testId 时,请使用:
cy.task('getTestId').then((testId) => {
cy.log(testId)
});
推荐阅读
- python - 我在查看使用 MongoDB、pyhton 和 angular 在我的 Web 应用程序上显示评论的引导卡时遇到问题。是评论 ID 的问题
- c# - C# 表达式 API - 捕获外部变量
- python - 在 python 中使用大整数进行 Base 10 到 Base 2 的转换
- php - 有哪些方法可以保持 PHP 整数 10^18 的精度
- c++ - 如何在预处理器#ifdef 中使用“else if”?
- flutter - 我在有状态小部件中创建了一个 50 行函数,现在我想在类似的其他小部件中使用该函数,但我无法提取它
- php - PHP中嵌套文件的URL
- docker - 如果容器已经在运行,如何正确更改 docker-compose.yml 和 Drupal 9 项目文件?
- javascript - 在挂载函数中使用 vue.js 道具值
- javascript - 如何使用 reactjs 在 cookie 中保存多个用户数据?