我希望使用打字稿执行测试,我使用ts-jest
。
但是,我的测试失败了,因为spec.ts文件需要一组似乎无法检索的依赖项。我已经包含了tsconfig文件,该文件包含一个file
属性以及所有必需的依赖文件(并且在正常编译中有效)。以下是将tsConfig
到jest
配置的方法:
module.exports = {
globals: {
'ts-jest': {
"diagnostics": false,
"tsConfig": "tsconfig.json"
}
},
transform: {
"^.+\\.tsx?$": "ts-jest"
},
coverageDirectory: "coverage",
testEnvironment: "node",
testMatch: [
'./**/test/**/mobilite-manager.get-info-machine.spec.ts'
]
};
tsconfig
文件如下所示:
{
"compileOnSave": false,
"compilerOptions": {
"allowJs": false,
"moduleResolution": "classic",
"sourceMap": true,
"inlineSources": true,
"declaration": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"outDir": "./dist-fwk-client/",
"outFile": "./dist-fwk-client/framework-client.js",
"typeRoots": [
"node_modules/@types",
"./node_modules/typescript/lib/lib.d.ts"
]
},
"files": [
"path/to/source/file.ts",
"another/path/to/some/source/file1.ts",
"different/path/to/source/file2.ts",
...
]
}
我还确保没有任何依赖关系的测试文件执行良好。
现在,我收集到的是,在运行jest
时,建议所有源文件都放在src
文件夹中,并在test
或__tests__
文件夹中测试文件,但是,我的源代码文件不能放入平面src
文件中,并且结构在文件夹树中。换句话说,在执行每个测试时,我需要使用files
的{{1}}属性,并且需要tsConfig
来解决这个问题。那可行吗?