Cyprerss的钩子函数

简介: 大家好,我是阿萨。昨天学习了如何使用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)
    })
})


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


5c173c78ef1746a3a36aaf574cd71c5b_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


e990bf25a4b14f50a17b2eb0be388a18_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


你学会了吗?


如果觉得阿萨的内容对你有帮助,欢迎围观点赞。


相关文章
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
316 5
|
存储 算法 Java
【数据结构】二叉树的前中后序遍历(C语言)
【数据结构】二叉树的前中后序遍历(C语言)
|
Java UED 开发者
揭开Java性能提升之谜:异步编程如何让你的应用响应速度飞升?
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点,异步编程因其能提高应用响应速度和吞吐量而在Java领域广泛应用。本文将详细阐述Java异步编程的概念与优势,并通过实战示例展示其在实际项目中的应用,如使用`Future`、`Callable`及`CompletableFuture`等接口和类实现异步操作,帮助开发者更好地理解和运用这一技术,以提升程序性能和用户体验。
116 0
Flutter 一行Row中显示RadioListTile
Flutter 一行Row中显示RadioListTile
215 0
|
监控 Linux Go
OS Copilot测评官参与指南
**OS Copilot测评体验:** 学生作者首次测评商业技术产品,分享使用智能操作系统助手提升编码和系统保护体验。在Linux环境下,OS Copilot减轻了繁琐的命令行操作,尤其对于新手,它帮助编写脚本、解答问题和生成代码。文中提到手动输入密钥时遇到的错误,凸显了自动辅助的重要性。推荐给新用户和专家,有望成为服务器开发和维护的得力工具。虽然大型语言模型已能解决问题和编写代码,但OS Copilot针对操作系统提供专门支持,未来可能扮演更积极的角色,如自动监控和防御。
|
前端开发
react recharts饼图 及配置项
react recharts饼图 及配置项
320 0
ssm(Spring+Spring mvc+mybatis)Dao接口——IDeptDao
ssm(Spring+Spring mvc+mybatis)Dao接口——IDeptDao
|
存储 机器学习/深度学习 边缘计算
云边协同与人工智能AI的深度融合(云端训练、边端推理)
在面向物联网、大流量等场景下,为了满足更广连接、更低时延、更好控制等需求,云计算在向一种更加全局化的分布式节点组合形态进阶,边缘计算是其向边缘侧分布式拓展的新触角。
11244 0
SwiftUI100天:使用SwiftUI搭建一个剪刀石头布App(上)
在本章中,你将学会使用SwiftUI搭建一个剪刀石头布App。
320 1
SwiftUI100天:使用SwiftUI搭建一个剪刀石头布App(上)
|
监控 Shell Docker
Docker入门(二)
上一节中,我们了解到了Docker 的一些基本知识点,它的一些核心概念,Docker的使用安装等。此篇文章我们对 Docker 进行入门讲解
158 0
Docker入门(二)