【发布时间】:2014-01-11 23:44:50
【问题描述】:
我正在使用在 nodejs 实例中运行的 mocha 测试存储过程。我有这个测试骨架:
var chai = require('chai'),
MyReporter = require("../MyReporter.js"),
chokidar = require('chokidar'),
expect = chai.expect,
should = chai.should,
assert = chai.assert;
var Mocha = require('mocha');
amochai = new Mocha({
bail: false,
debug: true
});
amochai.addFile("mytest_v1.js");
function runMocha(callback) {
amochai.run(function () {
callback();
});
}
watcher.on('change', function(path, stats) {
runMocha(function () {});
}
问题:我的测试总是以异步模式运行,尽管我所有的测试都是这样写的:
describe('Mysql stored procedures', function(){
describe('Add this data', function(){
it('-- Should return this information', function(){
// asserts
});
});
});
没有 done() 回调,我的意思是无处,所以,正如到处都提到 mocha.js 默认是同步的,我的代码在异步模式下运行的原因可能是什么?
补丁
为了修补我的问题,我不得不使用 before() 并检查我的测试状态,但这变成了维护的噩梦。
【问题讨论】:
-
是什么症状导致您得出 mocha 正在异步运行您的测试的结论?
-
我在节点检查器中运行这些测试,我可以通过断点确认测试是并行运行的。我把调试器带到了救援中,以发现为什么我的测试不连贯。
-
如何同步调用存储过程?你说的是db存储过程吧?