[英]Testing of npm scripts
如何编写 npm 脚本成功运行的测试?
我在package.json
中有 npm 脚本,如下所示。
"scripts": {
"start": "node server.js",
"dev": "webpack serve --mode development",
"lint": "eslint src",
...
我想测试这些 npm 脚本是否成功启动。
例如,如何测试命令npm run dev
( webpack serve
) 启动成功?
您可以像测试计算机进程一样测试它们——独立于 JavaScript。 您将 webpack/eslint 是 JavaScript 程序这一事实视为实现细节。
基本上 - 他们应该只在非常大的项目中进行测试并进行一些测试。
测试可能类似于:
const util = require('util');
const { exec } = util.promisify(require('child_process').exec);
describe('your run scripts', () => {
it('starts a dev server', () => {
// create a way to stop the server
const ac = new AbortController();
// start the dev server
const devServerPromise = exec('npm run dev', { signal: ac.signal });
// validate the server launched (retry comes from any promise retry package, fetch can be unidici or axios just the same)
// localhost:4200 is an example for where the dev server is running
await retry(() => fetch('http://localhost:4200/'));
ac.abort(); // close the dev erver
});
});
请注意,就像我一开始一样,如果您的项目不是成千上万的开发人员,那么编写此类测试的投资回报率很低,因为开发人员很快就会注意到npm run dev
等问题,并且拥有另一个需要了解某些实现细节的呼叫站点很高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.