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

rqcrx0a6  于 9个月前  发布在  Jest
关注(0)|答案(1)|浏览(127)

我用jest测试我的库,在第一层有一个文件,里面有几个描述调用,但是当我运行“npm test”时,它报告:“Test Suites:1 passed,1 total”“Tests:26 passed,26 total”
为什么它没有报告几个测试套件?
据我所知,jest的describe函数应该创建自己的测试套件,但不知何故,它们都被组合在一起了。
在jest API中,“describe(name,fn)创建一个块,将几个相关的测试组合在一个测试套件中”

h7wcgrx3

h7wcgrx31#

看起来Jest并没有真正把对describe()的每个顶级调用都算作一个测试套件。在Jest的GitHub仓库中甚至有一个open issue将此行为报告为bug。
实际上,正如您所描述的以及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


当前的Jest文档似乎具有误导性,它指出:
describe(name, fn)创建一个块,将多个相关测试组合在一个“测试套件”中。

相关问题