问题描述
我已经在Windows操作系统中设置了带有一些测试的Express API,第一个测试在wrongo/test/app_test.js
内部成功运行:
const assert = require('assert');
const request = require('supertest');
const app = require('../app');
describe('the express app',() => {
it('handles a GET request to /api',done => {
request(app).get('/api').end((err,response) => {
assert(response.body.how === 'dee');
done();
});
});
});
我后来在wrongo/test/controllers/users_controller_test.js
开发了另一项测试:
const assert = require('assert');
const request = require('supertest');
const app = require('../../app');
describe('Users controller',() => {
it('Post to /api/users creates a new user',done => {
request(app).post('/api/users').send({ email: 'test@test.com' }).end(() => {
done();
});
});
});
它根本不会运行第二个测试,并且我没有从users_controller.js
文件中获得控制台日志:
module.exports = {
greeting(req,res) {
res.send({ how: 'dee' });
},create(req,res) {
console.log(req.body);
res.send({ how: 'dee' });
}
};
我不相信我有任何语法错误,不确定为什么Mocha不会只运行第二个测试。
解决方法
如果将Mocha嵌套在import pathlib
print(pathlib.Path.cwd())
>>> A:\Programming\Python\generalfile
文件夹内的文件夹中,则Mocha似乎找不到测试,但是当我将测试文件移至主test/
文件夹时,Mocha能够运行该测试。原因是,如果您查看test/
内的"scripts"
对象,则会发现package.json
缺失:
--recursive
但是我不得不以这种方式编写测试脚本,因为当我遇到"test": "nodemon --exec mocha -R min"
时,Windows 10一直给我一个错误。