Cypress 调用后端能力 task

在 Cypress 中的测试都是在前端运行的, 一些后端的操作是不可以直接调用的, 例如 fs, 但是可以通过 task 作为桥梁进行调用.

1. 在 cypress.config.js 中配置

  e2e: {setupNodeEvents(on, config) {plugins(on, config);},

2. 在 plugins/index.js 中实现

const fs = require("fs");
const Sms = require("../support/dkd/common/sms");module.exports = (on, config) => {on("task", {readFileSync({ src }) {return fs.readFileSync(src);},smsCode({ config, nationCode, phoneNo }) {return new Sms(config).getCode(nationCode, phoneNo);},});
};

3. 在测试中使用

3.1 普通的返回

  • 如果返回的是个字符串直接就可以通过 cy.task() 的返回值获取了.
  • 如果返回的是个 Buffer, 则需要使用 await cy.task() 并且获取返回值后转换成 Buffer (`Buffer.from(xxx)
  • `)

例如:

const xxx = await cy.task("readFileSync", { src: __dirname + "/xxxxxx/xxx.xx" });
Buffer.from(xxx)

3.2 如果返回的是一个 promise

必须使用 .then, 使用 await 没有用.

例如:

    cy.task("smsCode", { config, nationCode: "+86", phoneNo }).then((smsCode) => {cy.get('#xxxx').should("be.visible").type(smsCode);});

看起来很奇怪, 通常在 js 中以下两种是可以通用的:

  • const xxx = await fff()
  • fff().then((xxx) => {})

但是在这里不行, 一定要使用 then() 否则在最开始就直接执行了 await cy.task() 后面的语句, 不会等待其返回.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学术英语】Unit3:Academic Writing(学术写作)

文章目录 一、摘要1.1 摘要简介1.2 摘要的两种类型1.3 写摘要的技巧1.4 摘要的关键词1.5 例子1.5.1 例子11.5.2 例子2 二、注释和致谢2.1 注释的格式2.1.1 Book2.1.2 论文2.1.3 例子 2.2 致谢的格式 三、书目选编 一、摘要 1.1 摘要简介 摘要对学术写作极其重要和有用&#x…

小白之 FastGPT Windows 本地化部署

目录 引言环境步骤1. 安装 docker2. 启动 docker3. 浏览器访问4. One API 配置语言模型、向量模型渠道和令牌5. 创建 FastGPT 知识库6. 创建 FastGPT 应用 官方文档 引言 部署之前可以先看一下 RAG 技术原理,也可以后面回过头来看,对一些概念有些了解&a…

Latex插入eps图片不显示报错not found解决方案

Latex插入eps图片不显示并报错: 解决方案: 首先确保.tex文件中添加包\usepackage{epstopdf} winR输入cmd进入系统命令行 进入.tex文件系统盘,代码:D: 进入.tex所在文件夹,代码:cd D:\Desktop\xxx 执行最重要…

Spring Cloud LoadBalancer 源码解析

前言 LoadBalancer(负载均衡器):一种网络设备或软件机制,用于分发传入的网络流量负载到多个后端目标服务器上,依次来提高系统的可用性和性能,Spring Cloud 2020 版本以后,移除了对 Netflix 的依…

如何在项目中配置.gitignore文件

1. .gitignore作用 .gitignore文件用于告诉Git哪些文件不应被跟踪或者提交到版本控制中。 2. 创建.gitignore文件 在你的项目根目录下创建一个名为.gitignore的文件 3. 常见规则 3.1 操作系统生成的文件 # macOS .DS_Store .AppleDouble .LSOverride# Windows Thumbs.db …

Physics of Language Models学习小结

1.概述 Physics of Language Models 参考:https://zhuanlan.zhihu.com/p/711391378 这是一系列论文和一个新的LLM研究方向,官网的概述如下。 苹果掉落,盒子移动,但重力和惯性等普遍规律对技术进步至关重要。虽然GPT-5或LLaMA-…

保号套餐千万别随便办理,小心有坑!

现在网上到处都是讨论保号套餐的消息,保号套餐虽好,但是小编提醒大家千万别随便办理,小心有坑! 为什么这么说呢,我们先来看一张图: 移动的保号套餐,月租8元,分成两个套餐&#xff0…

算法笔试-编程练习-H-02-24

w这套题,侧重模拟和题目理解,只要按照题目描述正常复现整体分数应该不错 一、数据重删 数据重删是一种节约存储空间的技术,通常情况下,在数据存储池内是有很多重复的数据库。重删则是将这些重复的数据块找出并处理的技术。简单地…

黑神话怎么玩?隐藏BOSS寅虎打法攻略

这期来教大家黑神话悟空寅虎BOSS怎么打,寅虎是游戏中比较强力的一只boss,很多玩家拼尽全力都还是惜败一招,其实想要打赢它需要采用特定的方法和技巧才能攻克,因此接下来小编会给大家介绍下它的打法,还没攻克这个boss的…

P2P 文件共享:现代网络中的高效文件传输

在互联网的世界中,不同应用程序的数据传输方法各异。P2P文件共享(Peer-to-Peer File Sharing) 作为一种高效的文件传输方式,使得用户可以在没有中央服务器的情况下直接进行文件交换。本文将详细介绍P2P文件共享的基本原理、优势及…

bash代码片段snippets

bash代码片段 # Rename all *.txt to *.text for file in *.txt; domv -- "$file" "${file%.txt}.text" donewhile read x z y; doof"xag.1/$x.png" if"xag/$y.png"cp $if $of done < db.log tree -L 2 | sed s/\xc2\xa0/ /g &g…

游戏开发设计模式之装饰模式

目录 装饰模式在游戏开发中的具体应用案例是什么&#xff1f; 如何在Unity中实现装饰模式以动态扩展游戏对象的功能&#xff1f; 装饰模式与其他设计模式&#xff08;如适配器模式、代理模式&#xff09;相比&#xff0c;有哪些优势和劣势&#xff1f; 优势 劣势 与适配器…

如何满足业主多元需求?开发物业APP,打造智能社区生活

随着智能科技的快速发展&#xff0c;物业管理也逐渐迈入数字化时代。物业app开发成为了提升社区管理效率、改善居民生活质量的重要途径&#xff0c;许多物业管理公司纷纷开发物业App&#xff0c;以提升管理效率、改善用户体验。一款出色的物业APP能够整合居民需求、提升企业服务…

three.js 实现 3D地图

three.js 实现仿照 echarts 3d 地图 。 由于 three.js 目前比较依赖写代码&#xff0c;而一个美的地图需要大量的three.js 组合&#xff0c;我建议 先做three.js 基础层的 低代码编辑器&#xff0c;随后各种项目和效果配置起来都会很方便。 https://z2586300277.github.io/th…

metagpt指南浅谈

MetaGPT多智能体框架概述 1.1 框架介绍 MetaGPT是一个创新的多智能体框架&#xff0c;旨在通过模拟和优化多智能体系统的行为来处理复杂的软件开发任务。该框架的核心优势在于其能够通过智能体之间的协作和交互&#xff0c;高效地解决单一智能体难以独立完成的复杂问题。Meta…

FastGPT如何增减用户

背景 开源版本的FastGPT默认只有一个超级用户root&#xff0c;为了更好地管理应用和知识库&#xff0c;可以通过操作MongoDB数据库来增加新的用户和团队。 所需环境 已安装并运行的FastGPT实例MongoDB客户端工具&#xff08;如Mongo Shell或Robo 3T等&#xff09; 操作步骤…

tomcat初步学习

tomcat部署 三太主机 安装 java 环境。两台tomcat-node都安装 安装并启动 tomcat 将之简便处理下放在别的目录并启动 测试 生成 tomcat 的主配置文件 生成启动文件 编辑文件 给与权限后启动 tomcat的反向代理和负载均衡 建立对应文件将之移到目录下 配置后测试 进入文件 写…

用于低质量蒙面人脸识别的一致子决策网络

Consistent Sub-Decision Network for Low-Quality Masked Face Recognition 摘要 提出了一种利用由多个dropout块组成的在线一致性评估结构来获得对应于人脸不同区域的子决策网络&#xff0c;以获得对应于不同面部区域的子决策&#xff0c;并通过加权双向KL散度来约束子决策&…

【C#】【EXCEL】Bumblebee/Classes/ExFont.cs

Bumblebee/Classes/ExFont.cs Flow diagram 根据您提供的代码和要求&#xff0c;我将创建一个流程图来展示ExFont类的结构。这个流程图将使用中英双语标注&#xff0c;并对应到代码中的英文。 #mermaid-svg-uaTfYlccE1dTu1A6 {font-family:"trebuchet ms",verdana,…

目标检测:Cascade R-CNN: Delving into High Quality Object Detection - 2017【方法解读】

目录 摘要:1.引言2. 相关工作3. 对象检测3.1. 边界框回归3.2. 分类3.3. 检测质量4. 级联 R - CNN4.1. 级联边界框回归4.2. 级联检测摘要: 在目标检测中,需要一个交并比(IoU)阈值来定义正样本和负样本。使用低IoU阈值(例如0.5)训练的目标检测器通常会产生有噪声的检测结…