node.js - spec - ReferenceError: describe no está definido NodeJs
node test before (7)
Estoy tratando de definir algunos puntos finales y hacer una prueba usando
nodejs
.
En
server.js
tengo:
var express = require(''express'');
var func1 = require(''./func1.js'');
var port = 8080;
var server = express();
server.configure(function(){
server.use(express.bodyParser());
});
server.post(''/testend/'', func1.testend);
y en
func1.js
:
var testend = function(req, res) {
serialPort.write("1", function(err, results) {
serialPort.write("2" + "/n", function(err, results) {
});
});
});
exports.testend = testend;
Ahora en
test.js
estoy tratando de usar este punto final:
var should = require(''should'');
var assert = require(''assert'');
var request = require(''supertest'');
var http = require(''http'');
var app = require(''./../server.js'');
var port = 8080;
describe(''Account'', function() {
var url = "http://localhost:" + port.toString();
it(''test starts'', function(done) {
request(url).post(''/testend/'')
// end handles the response
.end(function(err, res) {
if (err) {
throw err;
}
res.body.error.should.type(''string'');
done();
});
});
});
Pero cuando ejecuto el
node test.js
este error:
describe(''Account'', function() { ^ ReferenceError: describe is not defined at Object. (/test/test.js:9:1) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3
¿Cómo puedo solucionar el problema?
OP preguntó acerca de la ejecución desde el
node
no desde
mocha
.
Este es un caso de uso muy común, consulte
Uso de Mocha de forma programada
Esto es lo que inyecté y lo describí en mis pruebas.
mocha.ui(''bdd'').run(function (failures) {
process.on(''exit'', function () {
process.exit(failures);
});
});
Intenté
tdd
como en los documentos, pero eso no funcionó, aunque bdd funcionó.
Para ejecutar pruebas con node / npm sin instalar Mocha globalmente, puede hacer esto:
• Instale Mocha localmente en su proyecto (
npm install mocha --save-dev
)
• Opcionalmente, instale una biblioteca de aserciones (
npm install chai --save-dev
)
• En su
package.json
, agregue una sección para
scripts
y apunte al binario mocha
var expect = require(''chai'').expect;
• Coloque sus archivos de especificaciones en un directorio llamado
/test
en su directorio raíz
• En sus archivos de especificaciones, importe la biblioteca de aserciones
npm test
• No necesita importar mocha, ejecutar
mocha.setup
o llamar a
mocha.run()
• Luego ejecute el script desde la raíz de su proyecto:
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"-u",
"bdd",// set to bdd, not tdd
"--timeout",
"999999",
"--colors",
"${workspaceFolder}/test/**/*.js"
],
"internalConsoleOptions": "openOnSessionStart"
},
Suponiendo que está probando a través de
mocha
, debe ejecutar sus pruebas utilizando el comando
mocha
lugar del
node
ejecutable.
Entonces, si aún no lo ha hecho, asegúrese de hacer
npm install mocha -g
.
Luego, simplemente ejecute
mocha
en el directorio raíz de su proyecto.
También puedes hacer así:
var mocha = require(''mocha'')
var describe = mocha.describe
var it = mocha.it
var assert = require(''chai'').assert
describe(''#indexOf()'', function() {
it(''should return -1 when not present'', function() {
assert.equal([1,2,3].indexOf(4), -1)
})
})
Referencia: http://mochajs.org/#require
Tengo este error cuando uso "--ui tdd". eliminar esto o usar el problema de solución "--ui bdd".
si está usando vscode, desea depurar sus archivos
Solía
tdd
antes, arroja
ReferenceError: describe is not defined
Pero, cuando uso
bdd
, ¡funciona!
perder medio día para resolverlo ...
"scripts": {
"test": "node ./node_modules/mocha/bin/mocha"
}