Cypress,JavaScript变量在增加后仍然等于0。每个方法

Cypress,JavaScript变量在增加后仍然等于0。每个方法,javascript,testing,cypress,Javascript,Testing,Cypress,嗨,我有这样的cypress测试,我不知道为什么。每个方法zeroCounter变量仍然是0。我检查了日志,并在每个方法的结尾处检查了块zeroCounter是否等于7。你能帮我吗 it('TEST',()=>{ var零计数器=0; cy.addDimensionByPropertyPanel(“日期”); cy.exAddMeasureByPropertyPanel(“数据为零,为零”); cy.get('[tid=“qv object VLC]')。应该('be.visible'); c

嗨,我有这样的cypress测试,我不知道为什么。每个方法zeroCounter变量仍然是0。我检查了日志,并在每个方法的结尾处检查了块zeroCounter是否等于7。你能帮我吗

it('TEST',()=>{
var零计数器=0;
cy.addDimensionByPropertyPanel(“日期”);
cy.exAddMeasureByPropertyPanel(“数据为零,为零”);
cy.get('[tid=“qv object VLC]')。应该('be.visible');
cy.exShowValues();
cy.exSelectDataAndGaps(“显示为连接”);
cy.get('.vizlib行值')
.每个($value)=>{
expect($value.text()).to.not.equal('-');
如果($value.text()=“0.00”){
零计数器++
cy.log(零计数器);
}
})
期望(零计数器)等于(7);
cy.qstake屏幕截图(“将空数据显示为零”);

})问题是Cypress不会按需执行内部调用,而是转到后面要执行的队列。在您的情况下,
expect(zeroccounter).to.equal(7);
行在
之前执行。each(…)
,因此值为0

您需要使用
expect
内部
then()
来工作:

cy.get('.vizlib-line-values')
.each(($value) => {
    ...
}).then(() => {
    expect(zeroCounter).to.equal(7);
});

问题是Cypress不按需执行内部调用,而是转到要在之后执行的队列。在您的情况下,行
expect(zeroccounter).to.equal(7);
.each(…)
之前执行,因此值为0

您需要使用
expect
内部
then()
来工作:

cy.get('.vizlib-line-values')
.each(($value) => {
    ...
}).then(() => {
    expect(zeroCounter).to.equal(7);
});