【发布时间】:2014-08-29 10:49:35
【问题描述】:
我正在尝试使用 grunt-mocha-test 为我的 nodejs 项目实施测试,但遇到了路径不同/不正确的问题。
就像我在其他地方看到的一样,我想通过只需要我的 server.js 来获得所有依赖项。
gruntfile.js
mochaTest: {
test: {
options: {
reporter: 'spec',
require: 'app/server.js'
},
src: ['app/test/**/*.js']
}
}
我目前的项目结构是这样的
gruntfile.js
app/server.js
app/models/..
app/controllers/..
app/tests/..
users.controller.test.js
var userCtl = require('../controllers/users.controller');
describe("return5", function () {
it("should return 5", function () {
var result = userCtl.return5(null, null);
expect(result).toBe(5);
});
});
users.controller.js
var mongoose = require('mongoose');
var User = mongoose.model('User'); // <- Mocha crash: Schema hasn't been registered for model "User".
..
在我的server.js 我使用:
..
// config.js: https://github.com/meanjs/mean/blob/master/config/config.js
config.getGlobbedFiles('./models/**/*.js').forEach(function (path) {
require(path); // never called with mochaTest
});
..
console.log(process.cwd()); // "C:\path\project" (missing /app)
..
所以 cwd 与应有的不同。
有人可以帮我解决这个问题吗?
一知道我做错了什么,我会澄清标题。
谢谢。
【问题讨论】: