¿Cómo puedo escribir una prueba de que los scripts npm se ejecutan correctamente?
Tengo scripts npm en package.json de la siguiente manera.
"scripts": { "start": "node server.js", "dev": "webpack serve --mode development", "lint": "eslint src", ...Me gustaría probar que estos scripts npm se ejecutan correctamente.
Por ejemplo, ¿cómo pruebo que el comando npm run dev ( webpack serve ) se inicia correctamente?
Los prueba como prueba un proceso de computadora, independientemente de JavaScript. Trata el hecho de que webpack/eslint son programas JavaScript como un detalle de implementación.
Básicamente, solo deben probarse en proyectos realmente grandes y tener algunas pruebas.
Una prueba puede ser algo como:
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 }); }); Tenga en cuenta que, como comencé, hay muy poco retorno de la inversión al escribir este tipo de pruebas si su proyecto no tiene miles de desarrolladores, ya que los desarrolladores notan muy rápidamente los problemas con cosas como npm run dev y el costo de tener otro el sitio de llamadas para ellos que necesita estar al tanto de ciertos detalles de implementación es alto.