每次 Karma 测试后如何清理?

How to clean up after each Karma test?

这是我的测试(Karma + Mocha):

describe('foo', function() {
  afterEach(function() {
    var id = window.setTimeout(function() {}, 0);
    while (id--) {
      window.clearTimeout(id);
    }
  });
  it('works', function() {
    document.body.innerHTML = '<html/>';
    // add some timeouts here
  });
});

afterEach部分在所有测试中完全相同。它在测试后清理混乱。这是明显的代码重复。我怎样才能摆脱它?

您可以 运行 全局挂钩(beforebeforeEachafterafterEach),当 运行 通过在设置文件中定义方法。

test/setup.js

beforeEach(async () => {  
  // your code
})

我们需要告诉 Mocha 我们可以在哪里找到这个文件,我们可以通过将以下内容放在 mocha.opts (https://mochajs.org/#mochaopts) 文件中来实现.

--file ./test/setup.js

您可以在此处阅读更多相关信息:https://mochajs.org/#root-level-hooks