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
'programing' 카테고리의 다른 글
Android XML 백분율 기호 (0) | 2023.09.18 |
---|---|
Angular ui-router로 기본 상태를 설정하는 방법 (0) | 2023.09.18 |
Git: 상태, diff 등에서 '수정된 내용'/dirty 서브모듈 항목의 나열을 억제할 수 있습니까? (0) | 2023.09.13 |
팬더는 조건이 충족되는 행에만 적용됩니다. (0) | 2023.09.13 |
사용자가 카메라 사용을 허락했는지 확인하는 방법은? (0) | 2023.09.13 |