programing

ReferenceError: 설명이 NodeJs로 정의되지 않았습니다.

goodsources 2023. 9. 13. 22:35
반응형

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는 이:이고다을다고s을을 사용하려고 합니다.

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('계정', 함수() {^
ReferenceError: 설명이 정의되지 않았습니다.목적지에서(/test/test.js:9:1)모듈에서._graphics(js:456:26)목적지에서모듈._확장자..js (js.js:474:10)Module.load에서(module.js:356:32)함수에서.모듈._load (fault.js:fault:12)함수에서.Module.runMain(module.js:497:10)시작 시(node.js:119:16)노상에서js:906:3

문제를 해결하려면 어떻게 해야 합니까?

를 통해 테스트한다고 가정할 때 를 사용하여 테스트를 실행해야 합니다.mocha신다d 대신 합니다.node실행 가능한

안 꼭.npm install mocha -g 뛰어요. 요 요 요.mocha프로젝트의 루트 디렉터리에 저장할 수 있습니다.

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"
},

Mocha를 전역적으로 설치하지 않고 node/npm으로 테스트를 실행하려면 다음 작업을 수행할 수 있습니다.

Mocha를 에 ()npm install mocha --save-dev)

라이브러리를 으로 ).npm install chai --save-dev)

의 • package.json, 을 합니다.scripts 모카 로 삼습니다.

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

을 • 의 에 을 에 의 을 /test 디렉터리에 합니다.

• 사양 파일에서 어설션 라이브러리를 가져옵니다.

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

• 모카를 수입할 필요는 없습니다.mocha.setup 콜, mocha.run()

• 그런 다음 프로젝트 루트에서 스크립트를 실행합니다.

npm test

다음과 같이 할 수도 있습니다.

  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/ #https

"--uitdd"를 사용할 때 이 오류가 발생합니다.이 문제를 제거하거나 "--uibdd" 수정 문제를 사용합니다.

가 OP의 .node출신이 아닌mocha. 이는 매우 일반적인 사용 사례입니다. Mocha를 프로그래밍 방식으로 사용을 참조하십시오.

이것이 내 시험에 기술과 그것을 주입한 것입니다.

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

나는 노력했다.tdd문서에서와 마찬가지로, 하지만 그것은 효과가 없었고, bdd는 효과가 있었습니다.

농담으로 당신은 추가해야 합니다."jest": true.eslintrc

{
  "env": {
    "browser": true,
    "es6": true,
    "jest": true
  },
...
  • 의 가 합니다 합니다 폴더가 있는지 확인합니다.test입니다를 .test.js파일.파일.
  • 또한 를 실행하여 프로젝트에서 사용할 수 있는 mocha가 있는지 확인합니다.mocha -version터미널에서(프로젝트 경로에서)
  • 프로젝트에 패키지가 있는지 확인합니다.실행되지 않을 경우 json 사용 가능npm init -y
  • 그리고 마지막으로 mocha test 스크립트를 실행하려면 터미널(프로젝트 경로)에서 실행합니다.npm test

저의 경우는 단지 linter의 문제였기 때문에 루트 폴더에 파일을 만들었고, 이 경우 chai를 사용하기 위해서 입니다.

{
    "env": {
        "browser": true,
        "node": true,
        "chai": true
    }
}

언급URL : https://stackoverflow.com/questions/28400459/referenceerror-describe-is-not-defined-nodejs

반응형