我可以在一个“描述”中包含多个“它”并使用一个beforeEach

时间:2019-05-09 21:54:12

标签: cypress

因此,我有一个beforeEach来加载我的网站。我主要是通过一个describe函数和一个it函数来编写测试。

我的beforeEach位于index.js>支持> Cypress文件夹中

beforeEach(() => {
  cy.visit('http://localhost:3000/');
});

当前代码示例:

describe('this is a test',function(){
    it('will be a test example',function(){
        cy.contains('test').click
        cy.contains('another test').click()
    })
})

一位同事指出,只要每个部分可以独立运行,我应该尝试将它们分解以更清楚地了解每个测试在做什么。我有几个可以独立运行的测试,但是,我编写的每个it('test_name',function()的beforeEach都会启动。

例如:我编写了一个测试来打开卡,单击一个状态,添加有关该状态的数据,然后关闭。如果我将每个部分分解成自己的it,那么它将使beforeEach重新回到我网站的“主页”页面上。

所需代码示例:

describe('this is a test',function(){
    it('will be a test example',function(){
        cy.contains('test').click
    })
    it('will test another test',function(){
        cy.contains('another test').click()
    })
})

有没有办法让这几个it函数在先前的测试中继续进行,而不是使beforeEach生效?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用beforeEach()before()。两者的行为略有不同。 before()describe()仅适用一次 beforeEach()适用于it()中的每个describe()

因此,您必须执行的操作: 将您只想每个describe()执行一次的所有步骤放在before()中。如果仍然需要每个it()执行的步骤,请将其放在beforeEach()中。

请注意,您可以同时使用before()beforeEach()