Estoy usando Karma y Mocha para ejecutar pruebas de integración en mi código base. Para validar el código base en Node.js, tengo una carpeta de casos de prueba.
repository/ ├── test/ │ ├── cases/ │ │ ├── case1.json │ │ ├── case2.json │ │ ├── case3.json │ │ └── case4.json │ ├── browser/ │ │ └── testFactory.spec.ts │ └── node/ └── testFactory.spec.ts Para mis pruebas de Node.js, solo uso fs.readdirSync(testCaseFolder, "utf-8") para obtener los nombres de archivo de todos los casos de prueba y luego recorrerlos.
for (const filename of filenames) { const data = fs.readFileSync(testCaseFolder + filename, "utf-8"); const testCase: ModelTestCase = JSON.parse(data.toString()); const testName = getTestName(filename); describe(testName, function() { it(getTestDescription(filename), async function() { /* do some testing here */ }); }); }Ahora necesito reescribir este diseño de prueba para que funcione en el navegador para probar a través de Karma. Karma tiene una forma de especificar una ruta a los archivos estáticos que se pueden servir durante las pruebas en la configuración: Karma - Archivos . Entonces, en este caso, agregué a mi configuración de Karma:
files: [ {pattern: 'test/cases/*.json', watched: false, included: false, served: true, nocache: false} ],y configure un proxy para servir el extremo de los casos de prueba en una URL conveniente:
proxies: { "/cases/": "http://localhost:8080/base/test/cases/" },Ahora teóricamente podría acceder al caso de prueba 1 con el siguiente código:
fetch("/cases/case1.json"); ¿Cómo puedo escribir un ciclo para obtener cada caso de prueba ubicado en el punto final /cases/ que es JavaScript compatible con el navegador?