当 运行ning 摩卡测试时我得到 "object is not a function" 但当我 运行 直接测试时没有

When running mocha test I get "object is not a function" but not when i run the test directly

当我 运行 “mocha” 到 运行 我所有的测试我得到这个错误:

var should = chai.should();                  ^
TypeError: Property 'should' of object #<Object> is not a function

然而,当我 运行 "mocha test/filename.js" 在有问题的文件上它 运行 没问题。 chai.should() 来自我之前问过的

最新node/npm/mocha/chai/should

什么会导致不同 运行 之间的这种差异?

谢谢

出现 因为 mocha 正在加载 应该 在早期的测试中

var should = require('should');

并尝试在全球范围内使用应该,所以当它到达我的

var should = chai.should();

在以后的测试中它会因为冲突而崩溃,所以当 运行 单独测试时没有冲突。

我通过所有测试并重新定义了上面的应该要求来解决了这个问题。