mocha 単体テストをデバッグするために iron-node (v2.2.17) を使用しようとしています。package.json から次のコマンドを実行すると、単体テストは正常に実行されます。
"test": "cross-env NODE_ENV=test mocha test/.setup.js --reporter progress --compilers js:babel-core/register --require babel-polyfill --recursive \"./src/**/*.spec.js\" \"./src/**/*.integrationSpec.js\" \"./test/**/*.spec.js\"",
ただし、このコマンドを実行すると、テストは失敗します。
"debug:test": "cross-env NODE_ENV=test iron-node node_modules\\mocha\\bin\\_mocha test/.setup.js --reporter progress --compilers js:babel-core/register --require babel-polyfill --recursive \"./src/**/*.spec.js\" \"./src/**/*.integrationSpec.js\" \"./test/**/*.spec.js\"",
コンソールのエラーは次のとおりです。
Error: Cannot find module 'src/framework/api/entityAddresses/entityAddressesAc tions'
- module.js:16 require
internal/module.js:16:19
- entityAddressesActions.spec.js:5 Object.<anonymous>
entityAddressesActions.spec.js:5:1
このモジュールは次の場所にあります。C:\TFS\Dev-UI\WebApp\Src\Web\Web\src\framework\api\entityAddresses\entityAddressesActions.js
私のプロジェクト フォルダはC:\TFS\Dev-UI\WebApp\Src\Web\Web
であり、私process.env.NODE_PATH
もC:\TFS\Dev-UI\WebApp\Src\Web\Web
です。(未定義でしたが、設定しprocess.cwd()
ました.iron-node.js
- https://github.com/sa/iron-node/issues/98#issuecomment-218658236を参照してください)
モジュールが見つからない理由がわかりません。いくつかの構成がありませんか?
編集
この SO の回答はprocess.env.NODE_PATH
、モジュール パスがキャッシュされているため、アプリの起動後に設定が機能しないことを示唆しています:実行中の node.js アプリケーションからプロジェクト ルートを決定する
Iron-node が開始する前にこれを設定する方法について途方に暮れています。常に未定義です。