我正在使用nestjs。
在运行所有测试之前,需要进行运行迁移。并在所有运行的测试nedd之后运行清晰的测试架构。
如果我在test / config / setup.js package.json
中使用javascript设置文件,则一切正常。
但是,如果我使用打字稿文件不起作用。
"globals": {
"ts-jest": {
"tsConfigFile": "tsconfig.json"
}
},
"globalSetup": "./config/setup.ts",
"globalTeardown": "./config/teardown.ts",
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "./test",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
test/config/setup.ts
import * as dotenv from 'dotenv'; // errors when run jest
module.exports = async () => {
dotenv.config({path: '.env.test'});
};
错误
/home/jashka/job/projects/project-name/test/config/setup.ts:1
(function (exports, require, module, __filename, __dirname) { import * as dotenv from 'dotenv';
^
SyntaxError: Unexpected token *
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:656:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
答案 0 :(得分:0)
这是我的jest.config.js
文件,可与.ts
安装文件一起使用。添加'^.+\\.tsx?$': 'ts-jest',
来转换.ts
文件,并将tsConfigFile
更改为tsConfig
。
module.exports = {
setupFiles: ['<rootDir>/tests/unit/setup.ts'],
globalSetup: '<rootDir>/tests/unit/globalSetup.ts',
globalTeardown: '<rootDir>/tests/unit/globalTeardown.ts',
moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],
transform: {
'^.+\\.jsx?$': 'babel-jest',
'^.+\\.tsx?$': 'ts-jest',
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},
testMatch: [
'<rootDir>/tests/unit/**/(*.)spec.(js|jsx|ts|tsx)',
],
globals: {
'ts-jest': {
babel: true,
tsConfig: "tsconfig.json",
}
}
};