即使在测试文件中存在多个对describe()的顶级调用,Jest也仅显示一个测试套件

时间:2018-12-01 22:38:04

标签: javascript node.js testing jestjs

我正在用玩笑来测试我的库,并且在第一层有一个包含多个describe调用的文件,但是当我运行“ npm test”时,它报告: “测试套件:1个通过,总共1个” “测试:26次通过,总共26次”

为什么不报告几个测试套件?

据我所知,jest的describe函数应该创建自己的测试套件,但是以某种方式将它们组合在一起...

通过笑话API, “ describe(name,fn)创建了一个块,将一个测试套件中的几个相关测试组合在一起”

1 个答案:

答案 0 :(得分:1)

看来,Jest并没有真正将对describe()的每个顶级调用都算作一个测试套件。 Jest的GitHub存储库中甚至有open issue将此行为报告为错误。

实际上,正如您所描述的以及此minimal example on repl.it所演示的,对describe()的两个顶级调用是:

const add = require('./add');
describe('add', () => {
  it('should add two numbers', () => {
    expect(add(1, 2)).toBe(3);
  });
});
describe('add again', () => {
  it('should add two numbers', () => {
    expect(add(1, 0)).toBe(1);
  });
});

被视为一个测试套件:

Jest v22.1.2 node v7.4.0 linux/amd64

 PASS  ./add-test.js
  add
    ✓ should add two numbers (5ms)
  add again
    ✓ should add two numbers

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        1.025s

Current Jest documentation在出现以下情况时似乎具有误导性:

  

describe(name, fn)创建一个块,将一个“测试套件”中的几个相关测试组合在一起