之前每个测试都会调用每个测试,而不仅仅是一次

beforeEach is being called for every test instead of just once

本文关键字:测试 不仅仅是 一次 调用      更新时间:2023-09-26

当我使用 beforeEach 异步时,我遇到了一种情况,我的规范中有几个测试。我看到每次运行的测试都会调用beforeEach,而不是在所有测试之前只调用一次 - 我做错了什么?这是我的代码:

describe("desc1", function () {
   beforeEach((done) => {
   // some logic
        done();
    });
}
describe("desc2",() => {
    it("has a value", () => {
        expect().toBe('');
    });
    it("has a value", () => {
        expect().toBe('');
    });
    it("has a value", () => {
        expect().toBe('');
    });
});        
});

});

正如你所看到的,我正在使用打字稿和 Chutzpa

顾名思义,"beforeEach"在每次测试之前运行,你应该使用"before"

你可以像这样使用 before 命令

describe('desc1', () => {
  before(() => {
    cy.log('Logged Once Before All tests');
  });
  beforeEach(() => {
    cy.log('Logged Before Every test');
  })
  it("has a value", () => {
    expect().toBe('');
  });
  it("has a value", () => {
    expect().toBe('');
  });
  it("has a value", () => {
    expect().toBe('');
  });
});