【问题标题】:Cypress - exclude tests from beforeEach赛普拉斯 - 从 beforeEach 中排除测试
【发布时间】:2019-08-29 12:42:27
【问题描述】:

我的测试中有 90% 需要在开始前完成一项任务,因此我将 beforeEach 功能设置为完美运行。

剩下 10% 的人在开始之前需要做点别的事情。

除了一些测试之外,在 Cypress 中是否有一些方法可以做 beforeEach?

【问题讨论】:

    标签: automation automated-tests cypress


    【解决方案1】:

    不,但你可以用它做一些技巧。例如:

    describe('describe 1', function(){
      beforeEach(function(){
      })
      it('test 1', function(){
      })
      it('test 2', function(){
      })
    })
    
    describe('describe 2', function(){
      beforeEach(function(){
      })
      it('test 3', function(){
      })
    })
    

    这样你仍然可以将你的测试聚集在一个文件中,但是通过将它们分成几个describe(),你可以将beforeEach()分开

    【讨论】:

    • 好的,但是如果我在支持文件夹中有它(beforeEach)我不能只用它来做一些测试?
    • 你能分享一些你现在如何使用它的代码语法吗?
    • 我已经制作了支持文件,该文件在每次测试某些任务之前都在做。之后它将重新开始。我以不同的方式想通了。不过非常感谢您的回答。
    【解决方案2】:

    从 cypress 8.2.0 及以上版本开始,您可以使用Cypress.currentTest 对象来检查每次运行的测试。

    describe('describe 1', () => {
    
        beforeEach(() => {
            switch(Cypress.currentTest.title) {
                 case 'test 3 - i am not so usual':
                 // case 'test 4 - not so usual too': (or any other test title)
                      cy.yourCustomCommand()
                      // or let your special test to take control...below
                 break;
                 default:
                     // do as usual
                     cy.yourStandardCommand()
                 break;
            }
        })
        
         it('usual test 1', () => {})
        
         it('usual test 2', () => {})
    
         it('test 3 - i am not so usual', () => {
              cy.letMeDoMyStaff()
              // ...
         })
    })
    

    文档:https://docs.cypress.io/api/cypress-api/currenttest

    【讨论】:

      猜你喜欢
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      相关资源
      最近更新 更多