私のNodeJSモジュールの1つでは、ユニットテストのために、自分のフォルダ内のモジュールの一部であるファイルにアクセスする必要があります。呼び出すファイルに__dirname
が、そのリソースファイルへの相対パスで試してみました。これは、vscode内から実行しているときに機能しますが、端末でnpm test
を実行しているときは機能しません。その場合、構築されたパスは1レベルオフです。どのようにすることができますか?nodejsモジュールの相対パスからリソースをロードする方法は?
私はコーディングのためにtypescriptを使用し、ユニットテストのためにはMochaを使用しています。
単純にログには__filename
が役に立ちます。これは、vscodeの下で実行中のファイルがトランスクリートされたJSファイルであるのに対し、Mochaではタイプスクリプトのソースファイルであることを示しています。私は実行する:
mocha --compilers ts:ts-node/register,tsx:ts-node/register
私のテスト。どのようにこれを克服し、正確なパスを確保するための考え方(__filename
が.ts
で終わるかどうかをテストする以外)