Cypress的钩子函数

简介: Cypress的钩子函数

大家好,我是阿萨。昨天学习了如何使用describe,context,specify 和it 去组织自动化测试用例。大家也学会了如何去写好一个test suites了。


有同学就问了,之前用selenium 或者其他测试框架的时候,都有setup 和teardown 等函数。cypress 咋没见这2个函数。哪如何实现每个测试的suite 之前都执行某个代码逻辑或者是每个测试用例之前都需要执行代码?


今天我们就来学习下cypress的 钩子函数。


Cypress 和Mocha 一样提供四个钩子函数:

  • before() ----当前测试套件,所有测试用例之前执行。
  • after()---当前测试套件,所有测试用例之后执行。
  • beforeeach()----当前测试套件,每个测试用例之前执行。
  • aftereach()-----当前测试套件,每个测试用例之后执行。


它们的作用是测试开始时设置测试的先决条件(比如准备测试数据)。或者测试结束后对测试环境进行清理(例如清理DB)。使用个例子看一下。

 describe('1st Describe to show 1st suite ', () => {
     before(function(){
        cy.log("Will run before all test scripts.")
    }
    )
     beforeEach(function(){
        cy.log("Will run before each testing scripts.")
    })
     afterEach(function(){
        cy.log("Will run after each testing scripts.")
    })
     describe('Describe Inside Describe to show nested suite', () => {
        it('first test inside', () => {
            cy.log('first test inside')
            assert.equal(true, true)
        })
    })
    it('1st test', () => {
         cy.log('1st test')
        assert.equal(true, true)
    })
    specify('2nd test', () => {
        cy.log('2nd test')
        assert.equal(true, true)
    })
     after(function(){
        cy.log("Will run after all test scripts.")
    })
})
 context('2nd suite', () => {
    it('first test', () => {
        cy.log('first test')
        assert.equal(true, true)
    })
    it('2nd test', () => {
        cy.log('2nd test')
        assert.equal(true, true)
    })
  })


这是例子的执行结果,通过例子的执行结果可以清晰的看出作用域。

image.png

image.png


你学会了吗?


相关文章
|
前端开发 JavaScript
cypress 如何定位元素?
cypress 如何定位元素?
310 0
cypress 如何定位元素?
|
测试技术
如何用命令行执行cypress?
如何用命令行执行cypress?
196 0
|
4月前
|
人工智能 JSON 运维
🚀🚀 【MCP + AI】grafana-mcp-analyzer:基于 MCP 的轻量图表分析助手
`grafana-mcp-analyzer` 是一个开源项目,通过 MCP 协议连接 AI 助手与 Grafana,实现智能分析监控数据。只需简单配置,AI 可快速解读图表,提供性能瓶颈、优化建议等专业分析,极大提升运维效率。支持多种数据源(Prometheus、ES 等),适配 ChatGPT、Claude 等模型,部署轻量,操作便捷。从此告别深夜手动排查问题,让 AI 成为你的智能运维专家!项目地址:<https://github.com/SailingCoder/grafana-mcp-analyzer>
459 1
🚀🚀 【MCP + AI】grafana-mcp-analyzer:基于 MCP 的轻量图表分析助手
|
10月前
|
JSON 搜索推荐 API
Lazada Item_review API接口的开发应用与收益
Lazada作为东南亚领先的电商平台,通过其丰富的API接口为第三方开发者提供了强大的工具。其中,Lazada商品评论列表API(item_review API)尤为重要,能够实时获取商品评论数据,帮助开发者了解用户反馈、优化商品策略、提高购物体验和建立品牌形象,从而在电商行业中实现显著的收益。本文将深入探讨该API的开发应用及其多方面的价值。
156 14
visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】
这篇文章提供了Visual Studio 2022社区版C#环境的搭建和安装使用指南,包括下载、安装步骤和创建C#窗体应用程序的详细图文解析。
visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】
|
11月前
|
JavaScript 安全 前端开发
TypeScript类型声明:基础与进阶
通过本文的介绍,我们详细探讨了TypeScript的基础与进阶类型声明。从基本数据类型到复杂的泛型和高级类型,TypeScript提供了丰富的工具来确保代码的类型安全和可维护性。掌握这些类型声明能够帮助开发者编写更加健壮和高效的代码,提高开发效率和代码质量。希望本文能为您在使用TypeScript时提供实用的参考和指导。
266 2
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之是否支持分库分表创建数据库
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
存储 C++ 容器
C++一分钟之-正则表达式库(regex)
【7月更文挑战第7天】C++从C++11开始支持正则表达式,通过`&lt;regex&gt;`库提供功能。本文涵盖基本概念如`std::regex`、`std::smatch`,以及`regex_search`和`regex_match`的使用。常见问题包括大小写敏感性、特殊字符转义、贪婪与非贪婪匹配和捕获组。提供的代码示例展示了如何进行匹配、不区分大小写的匹配、特殊字符匹配、贪婪与非贪婪匹配和捕获组的使用。理解并练习正则表达式能提升文本处理效率。
456 0
|
Java API
SpringBoot系列之切换log4j日志框架
SpringBoot系列之切换log4j日志框架
|
存储 弹性计算 运维
浅谈弹性计算管控可观测性体系建设
为什么需要可观测性?可观测性技术对业务团队的价值有哪些?如何建设一个可观测性技术体系?本文将从整体架构到核心设计一一为大家讲解。