![](/img/trans.png)
[英]NodeJS, WebStorm and Jasmine: ReferenceError: describe is not defined when debugging
[英]ReferenceError: describe is not defined 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
我收到了這個錯誤:
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
我該如何解決這個問題?
假設您正在通過mocha
進行測試,您必須使用mocha
命令而不是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
添加一個部分並定位 mocha 二進制文件
"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/#require
使用“--ui tdd”時出現此錯誤。 刪除此或使用“--ui bdd”修復問題。
OP 詢問從node
運行而不是從mocha
運行。 這是一個非常常見的用例,請參閱以編程方式使用 Mocha
這就是將描述和它注入到我的測試中的內容。
mocha.ui('bdd').run(function (failures) {
process.on('exit', function () {
process.exit(failures);
});
});
我像在文檔中一樣嘗試了tdd
,但這不起作用,但 bdd 起作用了。
test
的文件夾,其中包含您的test.js
文件。mocha -version
(在項目路徑中)確保您的項目中有 mocha 可用npm init -y
npm test
只需刪除/ dist目錄並重新編譯即可。 這對我有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.