[英]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.