it-swarm.com.de

ReferenceError: beschreiben ist keine NodeJs

Ich versuche einige Endpunkte zu definieren und teste sie mit nodejs. In server.js habe ich:

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);

und in func1.js:

    var testend = function(req, res) {
           serialPort.write("1", function(err, results) {
           serialPort.write("2" + "\n", function(err, results) {
           });
      });
   });
    exports.testend = testend;

Jetzt in test.js versuche ich diesen Endpunkt zu verwenden:

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();
                });
        });
});

Wenn ich node test.js starte, erhalte ich diesen Fehler:

 beschreiben ('Konto', Funktion () {
 ^ 

 Referenzfehler: beschreiben ist nicht definiert 
 am Objekt. (/test/test.js:9:1)
 at Module._compile (module.js: 456: 26) 
 bei Object.Module._extensions..js (module.js: 474: 10) 
 bei Module.load (module.js: 356: 32) 
 bei Function.Module._load (module.js: 312: 12) 
 bei Function.Module.runMain (module.js: 497: 10) .__ beim Start (node.js: 119: 16) 
 bei node.js: 906: 3 

Wie kann ich das Problem beheben?

103
N34

Wenn Sie über mocha testen, müssen Sie Ihre Tests mit dem Befehl mocha anstelle der ausführbaren Datei node ausführen.

Wenn Sie dies noch nicht getan haben, stellen Sie sicher, dass Sie npm install mocha -g tun. Dann führen Sie einfach mocha im Stammverzeichnis des Projekts aus.

149
mscdex

Um Tests mit node/npm auszuführen, ohne Mocha global zu installieren, können Sie Folgendes ausführen:

• Installieren Sie Mocha lokal in Ihrem Projekt (npm install mocha --save-dev)

• Installieren Sie optional eine Assertionsbibliothek (npm install chai --save-dev).

• Fügen Sie in package.json einen Abschnitt für scripts hinzu und richten Sie die Mokka-Binärdatei an

"scripts": {
  "test": "node ./node_modules/mocha/bin/mocha"
}

• Legen Sie Ihre Spezifikationsdateien in einem Verzeichnis mit dem Namen /test in Ihrem Stammverzeichnis ab

• Importieren Sie in Ihren Spezifikationsdateien die Assertionsbibliothek

var expect = require('chai').expect;

• Sie müssen not Mokka importieren, mocha.setup ausführen oder mocha.run() aufrufen.

• Führen Sie dann das Skript von Ihrem Projektstamm aus aus:

npm test
39
cantera

Das kannst du auch so machen:

  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)
    })
  })

Referenz: http://mochajs.org/#require

12
subhojit777

wenn Sie vscode verwenden, möchten Sie Ihre Dateien debuggen

Ich habe tdd benutzt, es wirft ReferenceError: describe is not defined

Aber wenn ich bdd benutze, funktioniert es!

verschwenden Sie einen halben Tag, um es zu lösen ....

    {
      "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"
},
9
toffee

ich habe diesen Fehler bei der Verwendung von "--ui tdd". Entfernen Sie dieses Problem oder verwenden Sie "--ui bdd".

1
GraySe7en

Das OP wurde nach dem Ausführen von node und nicht von mocha gefragt. Dies ist ein sehr häufiger Anwendungsfall, siehe Mocha programmatisch verwenden

Das ist es, was ich in meinen Tests beschrieben habe.

mocha.ui('bdd').run(function (failures) {
    process.on('exit', function () {
      process.exit(failures);
    });
  });

Ich habe versucht tdd wie in den docs, aber das hat nicht funktioniert, aber bdd hat funktioniert.

1
eighteyes

Verwenden Sie ein beliebiges Javascript-Test-Framework, um es auszuführen

npm install jest -g
jest ./**/**/demo.spec.js
npm install mocha -g
mocha ./**/**/demo.spec.js
npm install jasmine-node -g
jasmine-node ./**/**/demo.spec.js

 enter image description here

 enter image description here

0
Prashanth Sams