【发布时间】:2014-02-14 20:49:28
【问题描述】:
我正在尝试使用 mocha 来测试我的 express 应用。我的文件夹结构是:
myapp
|-app
|--models
|-test
|--mocha-blanket.js
|--mocha
|--karma
|-server.js
server.js 是我的快递服务器。我之前在options.require 有过,但documentation 说要使用blanket.js。我的mocha-blanket.js 是:
var path = require('path');
var srcDir = path.join(__dirname, '..', 'app');
require('blanket')({
// Only files that match the pattern will be instrumented
pattern: srcDir
});
我的 Gruntfile 有:
mochaTest:
options:
reporter: "spec"
require: 'test/mocha-blanket.js'
# require: "server.js"
coverage:
options:
reporter: 'html-cov',
captureFile: 'mocha-coverage.html'
src: ["test/mocha/**/*.js"]
我得到的错误是:
>> Mocha exploded!
>> MissingSchemaError: Schema hasn't been registered for model "Company".
>> Use mongoose.model(name, schema)
>> at Mongoose.model (/myapp/node_modules/mongoose/lib/index.js:315:13)
>> at Object.<anonymous> (/myapp/test/mocha/controllers/company.js:4:22)
>> at Module._compile (module.js:456:26)
>> at Module._extensions..js (module.js:474:10)
我确定我做错了某事(或很多事)。但我不确定是什么。有什么想法吗?
【问题讨论】:
-
该错误似乎与 Mocha 或 Blanket 无关。这是一个非常幼稚的问题,但它是否仅在 Mocha 中失败?当您启动服务器时,它是否真的有效?如果没有,添加一些有关模型的详细信息将有助于诊断。
-
当我启动我的服务器时它工作正常 - 只有在使用 mocha 进行 grunt 测试时才能正常工作
标签: javascript node.js express gruntjs mocha.js