因此,我有一个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生效?
谢谢。
答案 0 :(得分:1)
您可以使用beforeEach()
和before()
。两者的行为略有不同。
before()
每describe()
仅适用一次
beforeEach()
适用于it()
中的每个describe()
因此,您必须执行的操作:
将您只想每个describe()
执行一次的所有步骤放在before()
中。如果仍然需要每个it()
执行的步骤,请将其放在beforeEach()
中。
请注意,您可以同时使用before()
和beforeEach()
。