mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
Add benchmarks for node:test hooks and test options. The hooks benchmark covers before, after, beforeEach, and afterEach, with a none mode as the baseline. The test options benchmark covers skip and todo behavior. This adds coverage for part of the benchmark/test_runner gaps tracked in the issue. Refs: https://github.com/nodejs/node/issues/55723 Signed-off-by: Luan Muniz <luan@luanmuniz.com.br> PR-URL: https://github.com/nodejs/node/pull/63754 Reviewed-By: Aviv Keller <me@aviv.sh> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
52 lines
988 B
JavaScript
52 lines
988 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const { finished } = require('node:stream/promises');
|
|
const reporter = require('../fixtures/empty-test-reporter');
|
|
const {
|
|
after,
|
|
afterEach,
|
|
before,
|
|
beforeEach,
|
|
describe,
|
|
it,
|
|
} = require('node:test');
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
n: [1000],
|
|
hook: ['before', 'after', 'beforeEach', 'afterEach'],
|
|
}, {
|
|
// We don't want to test the reporter here.
|
|
flags: ['--test-reporter=./benchmark/fixtures/empty-test-reporter.js'],
|
|
});
|
|
|
|
const hookList = {
|
|
before: before,
|
|
after: after,
|
|
beforeEach: beforeEach,
|
|
afterEach: afterEach,
|
|
};
|
|
|
|
const noop = () => {};
|
|
|
|
function run(loopAmount, hookFn) {
|
|
for (let i = 0; i < loopAmount; i++) {
|
|
describe(`${i}`, () => {
|
|
hookFn(noop);
|
|
it(`${i}`, noop);
|
|
});
|
|
}
|
|
|
|
return finished(reporter);
|
|
}
|
|
|
|
function main(params) {
|
|
const hookFn = hookList[params.hook];
|
|
|
|
bench.start();
|
|
|
|
run(params.n, hookFn).then(() => {
|
|
bench.end(params.n);
|
|
});
|
|
}
|