【问题标题】:Mocha tests: avoid '../../' when requiring摩卡测试:在需要时避免使用“../../”
【发布时间】:2017-12-04 11:50:13
【问题描述】:
我的文件夹结构是:
/backend/services/service.js
/test/backend/services/service.js
在每个服务测试中,我使用以下内容:
var service = require('../../../backend/services/service')
有没有更优雅的方式自动要求具有相同路径的文件,只是没有test 文件夹?也许以某种方式使用mocha.opts?
【问题讨论】:
标签:
node.js
mocha.js
require
【解决方案1】:
我可以给你一个我使用的有点老套的解决方案。我有一个/test/__bootstrap.test.js 文件,我在其中创建了一个仅用于测试的全局testRequire() 函数:
// Creation of a wrapper to avoid ../../../.. using require()
global.testRequire = function(name) {
return require(path.join(__dirname, '..', name));
};
然后在/test/backend/services/service.js 中我使用testRequire() 而不是require()。
var service = = testRequire('backend/services/service');