2017-06-03 90 views
0

在我的一個NodeJS模塊中,我需要訪問屬於自己文件夾中模塊一部分的文件(用於單元測試)。它在調用文件中嘗試使用__dirname,並使用該資源文件的相對路徑。這適用於從vscode內運行時,但不在終端中執行npm test。在這種情況下,構建的路徑是一級的。怎麼可能?如何從nodejs模塊中的相對路徑加載資源?

我必須補充一點,我使用typescript進行編碼和Mocha進行單元測試。

簡單記錄__filename在這裏有所幫助。它顯示在vscode下執行的文件是經過轉換的JS文件,而在Mocha下它是打字稿源文件。我運行:

mocha --compilers ts:ts-node/register,tsx:ts-node/register 

爲我的測試。任何想法如何克服這一點,並確保使用正確的路徑(除了測試__filename.ts結尾)?

回答

0

好吧,原來很簡單。不要使用ts代碼運行mocha,而應使用轉碼代碼。只需要測試前transpilation運行:

"scripts": { 
    "prepublish": "tsc", 
    "install": "tsc", 
    "test": "tsc && mocha out/test" 
    },