2017-06-03 5 views
0

私の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で終わるかどうかをテストする以外)

答えて

0

わかりました。 tsコードでmochaを実行する代わりに、トランスコードされたコードを使用します。試験前に蒸散操作のみが必要です。

"scripts": { 
    "prepublish": "tsc", 
    "install": "tsc", 
    "test": "tsc && mocha out/test" 
    }, 
関連する問題