带有Jest和jasmine的多个it语句(噩梦.js)

带有Jest和jasmine的多个it语句(噩梦.js),jasmine,jestjs,nightmare,Jasmine,Jestjs,Nightmare,我在用它 这很好: describe('/ (Home Page)', () => { it('navigate /, then check title', async () => { await nm .goto('http://localhost:3000/') .wait(FIRST_LINK); const title = await nm .click(FIRST_LINK) .wait(FORM) .t

我在用它

这很好:

describe('/ (Home Page)', () => {
  it('navigate /, then check title', async () => {
    await nm
      .goto('http://localhost:3000/')
      .wait(FIRST_LINK);

    const title = await nm
    .click(FIRST_LINK)
    .wait(FORM)
    .title()
    expect(title).toEqual('First link');
  });
});
但是如果我分成2个
it()
块,如下所示:

describe('/ (Home Page)', async () => {
  it('navigate /', async () => {
    await nm
      .goto('http://localhost:3000/')
      .wait(FIRST_LINK);
  })
  it('check title', async () => {
    const title = await nm
    .click(FIRST_LINK)
    .wait(FORM)
    .title()
    expect(title).toEqual('First link');
  });
});
或者像这样:

  afterEach( (done) => {
    nm.end(done);
  });

  ...

  describe('/ (Home Page)', () => {
    it('navigate /', async (done) => {
      await nm
        .goto('http://localhost:3000/')
        .wait(FIRST_LINK);
      done()
    })
    it('check title', async (done) => {
      const title = await nm
      .click(FIRST_LINK)
      .wait(FORM)
      .title()
      expect(title).toEqual('First link');
      done()
    });
  });
Jasmine抛出了这个错误:

Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

  at pTimeout (node_modules/jest-jasmine2/build/queueRunner.js:53:21)
  at Timeout.callback [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:523:19)
  at ontimeout (timers.js:365:14)
  at tryOnTimeout (timers.js:237:5)
  at Timer.listOnTimeout (timers.js:207:5)

我对此有点困惑。有人能解释一下吗?

Hej Ashley,你能做到这一点吗?不:(现在看来,它似乎没有创建一个包含异步函数的“控制流”。我可能会尝试在“描述”和它之间做所有异步的事情,然后在所有异步问题解决后使用“它”调用。Hej Ashley,你能做到吗?不:(现在看来,它似乎没有创建一个包含异步函数的“控制流”。我可能会尝试在“描述”和“它”之间执行所有异步操作,然后在异步解决所有问题后使用“它”调用。