如何在 mocha.opts 中正确地 require 一个模块?
How can you correctly require a module in mocha.opts?
我正在使用 mocha-mongoose 在测试之间自动清除 mongo。在文档中,它说在您的规范文件中或在您的规范助手中全局需要该模块。
按照规范执行它效果很好,但我想从 mocha.opts 开始执行以保持我的代码干燥。
用 mocha.opts 要求它不起作用。 Mongo 未在规格之间清除
mocha.opts:
--require ./test/common.js
--reporter spec
--ui bdd
--recursive
--colors
--timeout 60000
--slow 300
common.js:
require('mocha-mongoose')('mongodb://your-mongodb-url-here');
在每个规范文件中要求它有效
test.js
var should = require('chai').should()
, require('mocha-mongoose')('mongodb://your-mongodb-url-here');
describe("Example test", function() {
it(' Mongo will be automatically clear all collections',);
});
如何在 mocha.opts 中正确地要求 mocha-mongoose
,这样我就不必在每次测试中都重复它?
它的工作方式是检查 beforeEach
并将其自身注册为 beforeEach
挂钩。这是 relevant source:
if (!options.noClear && !beforeEachRegistered) {
if ('function' == typeof beforeEach && beforeEach.length > 0) {
// we're in a test suite that hopefully supports async operations
beforeEach(clearDB);
beforeEachRegistered = true;
}
}
问题是 beforeEach
对 --require
加载的模块不可用。所以你不能用 --require
.
我唯一能想象 mocha-mongoose
的作者对 "your spec helper" 的意思是一个模块,其中包含每个规范所需的一堆实用函数:而不是添加 require('mocha-mongoose')(...);
对于每个规范,您只需将其添加到每个规范所需的模块中一次。
我正在使用 mocha-mongoose 在测试之间自动清除 mongo。在文档中,它说在您的规范文件中或在您的规范助手中全局需要该模块。
按照规范执行它效果很好,但我想从 mocha.opts 开始执行以保持我的代码干燥。
用 mocha.opts 要求它不起作用。 Mongo 未在规格之间清除
mocha.opts:
--require ./test/common.js
--reporter spec
--ui bdd
--recursive
--colors
--timeout 60000
--slow 300
common.js:
require('mocha-mongoose')('mongodb://your-mongodb-url-here');
在每个规范文件中要求它有效
test.js
var should = require('chai').should()
, require('mocha-mongoose')('mongodb://your-mongodb-url-here');
describe("Example test", function() {
it(' Mongo will be automatically clear all collections',);
});
如何在 mocha.opts 中正确地要求 mocha-mongoose
,这样我就不必在每次测试中都重复它?
它的工作方式是检查 beforeEach
并将其自身注册为 beforeEach
挂钩。这是 relevant source:
if (!options.noClear && !beforeEachRegistered) {
if ('function' == typeof beforeEach && beforeEach.length > 0) {
// we're in a test suite that hopefully supports async operations
beforeEach(clearDB);
beforeEachRegistered = true;
}
}
问题是 beforeEach
对 --require
加载的模块不可用。所以你不能用 --require
.
我唯一能想象 mocha-mongoose
的作者对 "your spec helper" 的意思是一个模块,其中包含每个规范所需的一堆实用函数:而不是添加 require('mocha-mongoose')(...);
对于每个规范,您只需将其添加到每个规范所需的模块中一次。