簡體   English   中英

npm腳本測試

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM