在我的一个NodeJS模块中,我需要访问一个文件,该文件是自己文件夹中的模块的一部分(用于单元测试)。它在调用文件中尝试了__dirname
,其中包含该资源文件的相对路径。这在从vscode内部运行时起作用,但在终端中执行npm test
时不起作用。在这种情况下,构建的路径是一个级别。怎么会这样?
我必须补充一点,我正在使用打字稿进行编码,使用Mocha进行单元测试。
只需记录__filename
有点帮助。它表明在vscode下执行文件是已转换的JS文件,而在Mocha下它是typescript源文件。我跑:
mocha --compilers ts:ts-node/register,tsx:ts-node/register
我的测试。知道如何克服这个问题并确保使用正确的路径(除了测试__filename
是否以.ts
结尾)?
答案 0 :(得分:0)
好的,结果很简单。不使用ts代码运行mocha,而是使用转换后的代码。在测试之前只需要进行转换运行:
"scripts": {
"prepublish": "tsc",
"install": "tsc",
"test": "tsc && mocha out/test"
},