chore: upgrade to Mocha v8 (#5997)
* chore: upgrade to Mocha v8 Mocha v8 has some nice improvements and also unlocks the potential to have parallel test runs which may speed up CI.
This commit is contained in:
parent
9522f80116
commit
759b28080a
@ -18,9 +18,10 @@ const base = require('./base');
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
...base,
|
...base,
|
||||||
file: ['./test/mocha-utils.js'],
|
require: ['./test/mocha-utils.js'],
|
||||||
spec: 'test/*.spec.js',
|
spec: 'test/*.spec.js',
|
||||||
|
parallel: process.env.CI && !process.env.COVERAGE,
|
||||||
// retry twice more, so we run each test up to 3 times if needed.
|
// retry twice more, so we run each test up to 3 times if needed.
|
||||||
retries: 2,
|
retries: process.env.CI ? 2 : 0,
|
||||||
timeout: 25 * 1000,
|
timeout: 25 * 1000,
|
||||||
};
|
};
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
"expect": "^25.2.7",
|
"expect": "^25.2.7",
|
||||||
"jpeg-js": "^0.3.7",
|
"jpeg-js": "^0.3.7",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"mocha": "^7.1.1",
|
"mocha": "^8.0.1",
|
||||||
"ncp": "^2.0.0",
|
"ncp": "^2.0.0",
|
||||||
"pixelmatch": "^4.0.2",
|
"pixelmatch": "^4.0.2",
|
||||||
"pngjs": "^5.0.0",
|
"pngjs": "^5.0.0",
|
||||||
|
@ -102,16 +102,17 @@ const trackCoverage = () => {
|
|||||||
clearOldCoverage();
|
clearOldCoverage();
|
||||||
const coverageMap = new Map();
|
const coverageMap = new Map();
|
||||||
|
|
||||||
before(() => {
|
return {
|
||||||
|
beforeAll: () => {
|
||||||
const api = require('../lib/api');
|
const api = require('../lib/api');
|
||||||
const events = require('../lib/common/Events');
|
const events = require('../lib/common/Events');
|
||||||
for (const [className, classType] of Object.entries(api))
|
for (const [className, classType] of Object.entries(api))
|
||||||
traceAPICoverage(coverageMap, events, className, classType);
|
traceAPICoverage(coverageMap, events, className, classType);
|
||||||
});
|
},
|
||||||
|
afterAll: () => {
|
||||||
after(() => {
|
|
||||||
writeCoverage(coverageMap);
|
writeCoverage(coverageMap);
|
||||||
});
|
},
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -140,7 +140,14 @@ global.describeChromeOnly = (...args) => {
|
|||||||
if (isChrome) return describe(...args);
|
if (isChrome) return describe(...args);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (process.env.COVERAGE) trackCoverage();
|
let coverageHooks = {
|
||||||
|
beforeAll: () => {},
|
||||||
|
afterAll: () => {},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (process.env.COVERAGE) {
|
||||||
|
coverageHooks = trackCoverage();
|
||||||
|
}
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
`Running unit tests with:
|
`Running unit tests with:
|
||||||
@ -176,7 +183,9 @@ exports.setupTestPageAndContextHooks = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
before(async () => {
|
exports.mochaHooks = {
|
||||||
|
beforeAll: [
|
||||||
|
async () => {
|
||||||
const { server, httpsServer } = await setupServer();
|
const { server, httpsServer } = await setupServer();
|
||||||
|
|
||||||
state.puppeteer = puppeteer;
|
state.puppeteer = puppeteer;
|
||||||
@ -187,20 +196,26 @@ before(async () => {
|
|||||||
state.isChrome = isChrome;
|
state.isChrome = isChrome;
|
||||||
state.isHeadless = isHeadless;
|
state.isHeadless = isHeadless;
|
||||||
state.puppeteerPath = path.resolve(path.join(__dirname, '..'));
|
state.puppeteerPath = path.resolve(path.join(__dirname, '..'));
|
||||||
});
|
},
|
||||||
|
coverageHooks.beforeAll,
|
||||||
|
],
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach: async () => {
|
||||||
state.server.reset();
|
state.server.reset();
|
||||||
state.httpsServer.reset();
|
state.httpsServer.reset();
|
||||||
});
|
},
|
||||||
|
|
||||||
after(async () => {
|
afterAll: [
|
||||||
|
async () => {
|
||||||
await state.server.stop();
|
await state.server.stop();
|
||||||
state.server = null;
|
state.server = null;
|
||||||
await state.httpsServer.stop();
|
await state.httpsServer.stop();
|
||||||
state.httpsServer = null;
|
state.httpsServer = null;
|
||||||
});
|
},
|
||||||
|
coverageHooks.afterAll,
|
||||||
|
],
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach: () => {
|
||||||
sinon.restore();
|
sinon.restore();
|
||||||
});
|
},
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user