我尝试定义一些端点,并使用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
如何解决此问题?
9条答案
按热度按时间kjthegm61#
假设您正在通过
mocha
进行测试,您必须使用mocha
命令而不是node
可执行文件来运行测试。所以如果你还没有,请确保你做了
npm install mocha -g
。然后在项目的根目录下运行mocha
。2w3rbyxf2#
如果使用vscode,要调试文件
我以前用过
tdd
,它抛出ReferenceError: describe is not defined
但是,当我使用
bdd
时,它就能工作了!花了半天时间才解决……
hs1rzwqc3#
要在不全局安装Mocha的情况下使用node/npm运行测试,可以这样做:
·将Mocha本地安装到项目(
npm install mocha --save-dev
)·可选安装Assert库(
npm install chai --save-dev
)·在您的
package.json
中,为scripts
添加一个节,并将mocha二进制文件作为目标·将spec文件放在根目录中名为
/test
的目录中·在spec文件中,导入Assert库
·您不需要导入mocha、运行
mocha.setup
、调用mocha.run()
·然后从项目根目录运行脚本:
jvlzgdj94#
你也可以这样做:
参考:http://mochajs.org/#require
1wnzp6jl5#
我有这个错误时使用“--ui TDD”.删除此或使用“--ui bdd”修复问题.
yvfmudvl6#
OP询问从
node
运行,而不是从mocha
运行。这是一个非常常见的用例,请参见Using Mocha Programatically这就是我在测试中注入的describe和it。
我尝试了
tdd
像在文档中,但没有工作,bdd工作虽然。hlswsv357#
对于Jest,您必须将
"jest": true
添加到.eslintrc
9o685dep8#
test
的文件夹,其中包含您的test.js
文件。mocha -version
,确保您的项目中有可用的mocha。npm init -y
npm test
dddzy1tm9#
在我的例子中,这只是linter的问题,所以我在根文件夹中创建了一个文件,在本例中使用Chai