如何设置Mocha来查找我的内部项目模块



我的环境:

  • Ubuntu版本16.04.6 LTS
  • 节点v8.17.0
  • 网络风暴2019.3.3
  • Mocha 7.1.0

嗨!

我刚开始学习MOCHA。

我在运行测试时出现以下错误:

Error: cannot find the module: FirstModuleToIncludeByMyModuleToBeTested

其中FirstModuleToIncludeByMyModuleToBeTested是我正在测试的单元使用的模块。我正在测试的单元包括的所有模块都有相同的问题。这个项目在Node和webstorm上运行得很好,当他们不在Mocha下工作时,他们都可以找到所有的库。

我已经安装了MOCHA,并且我已经在运行独立的测试(不喜欢这个项目(。到目前为止一切都很好,直到我尝试在一个真正的项目上测试一个模块。当我尝试运行测试时,mocha可以找到我正在测试的模块,但它不能找到该模块正在使用的模块(所有模块都在同一项目路径下(。。。通过网络风暴和命令行,我遇到了同样的问题,并得到了同样的错误消息…所有模块的路径都是相对于项目文件夹的根目录的,当不是MOCHA时,网络风暴和nodeJ可以运行。

我在网络风暴上尝试了几个关于项目和摩卡测试的工作路径的选项……但没有解决任何问题……我把测试文件夹放在project src文件夹下。此外,我还尝试在要测试的javascript模块所在的同一文件夹中使用mocha测试文件。

我已经尝试了所有Mocha镶嵌选项,如全球和本地项目。

npm install --global mocha

这是我得到的完整错误消息:

mymachine:$mocha MyMochaTest.js

> Error: Cannot find module 'x/MyProject/Folder1/Folder2/
> FirstModuleToIncludeByMyModuleToBeTested'
>     at Function.Module._resolveFilename (module.js:548:15)
>     at Function.Module._load (module.js:475:25)
>     at Module.require (module.js:597:17)
>     at require (internal/module.js:11:18)
>     at Object.<anonymous> (/home/myuser/Desenv/Git/MyProjec/Folder3/Folder4/MyModuleToBeTested.js:1:80)
>     at Module._compile (module.js:653:30)
>     at Object.Module._extensions..js (module.js:664:10)
>     at Module.load (module.js:566:32)
>     at tryModuleLoad (module.js:506:12)
>     at Function.Module._load (module.js:498:3)
>     at Module.require (module.js:597:17)
>     at require (internal/module.js:11:18)
>     at Object.<anonymous> (/home/myuser/Desenv/Git/MyProjec/MochaTests/MyMochaTest.js:4:23)
>     at Module._compile (module.js:653:30)
>     at Object.Module._extensions..js (module.js:664:10)
>     at Module.load (module.js:566:32)
>     at tryModuleLoad (module.js:506:12)
>     at Function.Module._load (module.js:498:3)
>     at Module.require (module.js:597:17)
>     at require (internal/module.js:11:18)
>     at /usr/lib/node_modules/mocha/lib/mocha.js:314:36
>     at Array.forEach (<anonymous>)
>     at Mocha.loadFiles (/usr/lib/node_modules/mocha/lib/mocha.js:311:14)
>     at /usr/lib/node_modules/mocha/lib/mocha.js:347:12
>     at new Promise (<anonymous>)
>     at Mocha.loadFilesAsync (/usr/lib/node_modules/mocha/lib/mocha.js:346:12)
>     at singleRun (/usr/lib/node_modules/mocha/lib/cli/run-helpers.js:107:15)
>     at exports.runMocha (/usr/lib/node_modules/mocha/lib/cli/run-helpers.js:144:11)
>     at Object.exports.handler (/usr/lib/node_modules/mocha/lib/cli/run.js:306:11)
>     at Object.runCommand (/usr/lib/node_modules/mocha/node_modules/yargs/lib/command.js:242:26)
>     at Object.parseArgs [as _parseArgs] (/usr/lib/node_modules/mocha/node_modules/yargs/yargs.js:1087:28)
>     at Object.parse (/usr/lib/node_modules/mocha/node_modules/yargs/yargs.js:566:25)
>     at Object.exports.main (/usr/lib/node_modules/mocha/lib/cli/cli.js:68:6)
>     at Object.<anonymous> (/usr/lib/node_modules/mocha/bin/mocha:133:29)
>     at Module._compile (module.js:653:30)
>     at Object.Module._extensions..js (module.js:664:10)
>     at Module.load (module.js:566:32)
>     at tryModuleLoad (module.js:506:12)
>     at Function.Module._load (module.js:498:3)
>     at Function.Module.runMain (module.js:694:10)
>     at startup (bootstrap_node.js:204:16)
>     at bootstrap_node.js:625:3

我找到了解决方案。

在命令行上,测试所在的位置,在项目路径内。

$ export NODE_PATH=<path to my project root>.

相关内容

  • 没有找到相关文章