it-swarm.com.ru

ReferenceError: описание не определено NodeJs

Я пытаюсь определить некоторые конечные точки и выполнить тест с использованием nodejs. В server.js у меня есть:

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

и в func1.js:

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

Теперь в test.js я пытаюсь использовать эту конечную точку:

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

Но когда я запускаю node test.js, я получаю эту ошибку:

 description ('Account', function () {
 ^ 

 ReferenceError: description не определено .__ в объекте. (/test/test.js:9:1)
 в Module._compile (module.js: 456: 26) 
 в Object.Module._extensions..js (module.js: 474: 10) 
 в Module.load (module.js: 356: 32) 
 at Function.Module._load (module.js: 312: 12) 
 at Function.Module.runMain (module.js: 497: 10) 
 при запуске (node.js: 119: 16) 
 at node.js: 906: 3 

Как я могу исправить проблему?

103
N34

Предполагая, что вы тестируете с помощью mocha , вы должны запускать тесты с помощью команды mocha вместо исполняемого файла node.

Поэтому, если вы этого еще не сделали, убедитесь, что вы делаете npm install mocha -g. Затем просто запустите mocha в корневом каталоге вашего проекта.

149
mscdex

Чтобы запустить тесты с узлом/npm без глобальной установки Mocha, вы можете сделать это:

• Установите Mocha локально для вашего проекта (npm install mocha --save-dev)

• При желании установите библиотеку утверждений (npm install chai --save-dev)

• В вашем package.json добавьте раздел для scripts и выберите целевой файл mocha

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

• Поместите ваши файлы спецификаций в каталог с именем /test в вашем корневом каталоге

• В ваших spec-файлах импортируйте библиотеку утверждений

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

• Вам нет нужно импортировать mocha, запустить mocha.setup или вызвать mocha.run()

• Затем запустите скрипт из корня вашего проекта:

npm test
39
cantera

Вы также можете сделать так:

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

Ссылка: http://mochajs.org/#require

12
subhojit777

если вы используете vscode, хотите отладить ваши файлы

Я использовал tdd раньше, он бросает ReferenceError: describe is not defined

Но когда я использую bdd, это работает!

потратить полдня на ее решение ....

    {
      "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

ОП спросил о запуске из node, а не из mocha. Это очень распространенный вариант использования, см. Использование Mocha программно

Это то, что впрыснуло описание и это в мои тесты.

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

Я пробовал tdd как в документах, но это не сработало, хотя BDD работал.

1
eighteyes

Используйте любую среду тестирования Javascript для ее запуска

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