Node.js 使用grunt mocha避免要求(../../../....)相对路径
当进行单元测试时,我倾向于在项目结构的顶部有一个名为Node.js 使用grunt mocha避免要求(../../../....)相对路径,node.js,mocha.js,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/mo
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')
这可能吗?我正在使用,但我认为这个问题更一般。您可以使用多种选项。例如,您最好的选择可能是使用一些npm模块。在npm注册中心搜索require,有很多选项,所以选择适合您需要的选项 或者,您可以编写一些辅助函数来执行类似的操作
如果您正在寻找某种本机方法(内置于Node.js中)来实现这一点,那么很遗憾,没有。您必须使用自定义函数或npm模块以一种良好的、可重用的方式来实现这一点。您可以尝试将测试文件放入
test/models/User.js
而不是test/app/src/js/models/User.js
中,然后您可以使用require('../app/src/js/models/User.js')