node.js - 使用 grunt mocha 避免 require(../../../..) 相对路径

标签 node.js mocha.js

进行单元测试时,我倾向于在项目结构的顶部有一个名为test 的目录,该目录结构模仿要测试的源代码。但是,这些目录可能会变得很深,例如

app/src/js/models/User.js

也许有一个测试

test/app/src/js/models/User.js.

现在,当我想包含 User.js 模块时,我使用 require('../../../../../app/src/js/models/Users.js') 非常麻烦。

理想情况下,我想使用 require('/app/src/js/models/User.js') 或者甚至 require('User.js').

这可能吗?我正在使用 grunt-mocha-test ,但我认为这个问题更笼统。

最佳答案

您可以使用多个选项。你最好的选择可能是使用一些 npm 模块,例如 this one .在 npm 注册表中搜索 require,有很多选项,因此请选择适合您需要的选项。

或者,您可以编写一些辅助函数来执行类似的操作。

如果您正在寻找某种原生方式(内置于 Node.js)来实现这一点,遗憾的是没有。您将不得不使用自定义函数或 npm 模块以某种不错的、可重用的方式执行此操作。

关于node.js - 使用 grunt mocha 避免 require(../../../..) 相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755957/

相关文章:

javascript - Cypress /JavaScript : Parameter on request path (response. body.VARIABLE)

database - NodeJS 中模型的可选更改

node.js - Mocha.js:即使测试套装失败也要运行 "after"钩子(Hook)

javascript - Sinon .callsFake() 没有模拟函数的返回

javascript - 快速路线悬挂异步等待

javascript - 使用 Webpack 和 mocha-loader 在浏览器中从 React 应用程序运行 Mocha 规范

node.js - 如何在nodeJS中模拟ftp服务器进行单元测试

javascript - JavaScript中的数据竞赛?

node.js - 使用 Node.JS 访问数据库 informix

javascript - 具有多个入口点的 Webpack watch() - 为未更改的文件发送 bundle ?