Estoy tratando de hacer un conjunto de casos de prueba con mocha y mongodb-memory-server (como una base de datos en la memoria). Estoy tratando de implementar esto de la siguiente manera.
Estructura del proyecto:
corredor de prueba: (en paquete.json)
"scripts": { "test": "mocha 'app/**/*.spec.js' --recursive --exit" }, Entonces, primero necesito inicializar MongoDB en la memoria, es por eso que estoy usando global.spec.js que se ve así,
const { MongoMemoryServer } = require("mongodb-memory-server"); const mongoose = require("mongoose"); mongoose.set("usePushEach", true); let mongoServer; before(async function () { // mongod donwload on first time this.timeout(30 * 1000); mongoServer = new MongoMemoryServer(); const mongoUri = await mongoServer.getUri(); await mongoose.connect(mongoUri, {}); process.env.AGENDA_DB_URI = mongoUri; }); after(function () { mongoose.disconnect(); mongoServer.stop(); }); y un archivo test-setup.js que se parece a esto,
const { MongoMemoryServer } = require("mongodb-memory-server"); (async function() { // trigger downloading mongodb executable on first time const mongoServer = new MongoMemoryServer(); await mongoServer.getUri(); mongoServer.stop(); })() .then(() => { process.exit(0); }) .catch(err => { console.error(err); process.exit(1); }); todos los archivos *.spec.js estarán dentro de la carpeta de modules . En palabras simples, cada carpeta dentro del módulo tendrá un archivo .spec.js . Si trato de ejecutar esto usando el npm run test , me está arrojando un error, que se ve así:
1) "before all" hook 0 passing (448ms) 1 failing 1) "before all" hook: Uncaught Error: TypeError: logWarnFn is not a function Creo que este error logWarnFn proviene de i18n. Pero cuando inicio el servidor, funciona bien.
versiones:
"mongodb-memory-server": "^6.6.2", "mocha": "^6.0.2", "i18n": "0.8.3",