2017-06-03 268 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" 
    },