【发布时间】:2021-09-08 16:11:44
【问题描述】:
这是我在package.json 中的jest 配置:
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"moduleDirectories":["node_modules", "src"], // tried to solve the issue like that
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
AFAIK Nest 没有添加 jest.config 文件,所以 package.json 是我最好的选择。
但是在这样做之后,我的代码仍然失败:
yarn run v1.22.5
$ jest
FAIL src/auth/auth.service.spec.ts
● Test suite failed to run
Cannot find module 'src/auth/auth.service' from 'auth/auth.service.spec.ts'
3 | import * as moment from 'moment';
4 | import { RedisService } from '@custom/redis-client'; // this is in node_modules
> 5 | import { AuthService } from 'src/auth/auth.service';
| ^
6 | import { ConfigService } from 'src/config/config.service';
7 |
8 | describe('AuthService', () => {
at Resolver.resolveModule (../node_modules/jest-resolve/build/index.js:306:11)
at Object.<anonymous> (auth/auth.service.spec.ts:5:1)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 3.486 s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
我还尝试将其添加到 jest 配置以及 tsconfig:
"moduleNameMapper": {
"src/(.*)": "<rootDir>/$1",
"tests/(.*)": "<rootDir>/__tests__/$1"
},
但是有了这段代码,我得到了:
yarn run v1.22.5
$ jest
FAIL src/auth/auth.service.spec.ts
● Test suite failed to run
Configuration error:
Could not locate module ./src/redis/redis.health.indicator mapped as:
/home/aironside/Documents/sygnum/dev-environment/api-layer/src/$1.
Please check your configuration for these entries:
{
"moduleNameMapper": {
"/src\/(.*)/": "/home/aironside/Documents/sygnum/dev-environment/api-layer/src/$1"
},
"resolver": undefined
}
at createNoMappedModuleFoundError (../node_modules/jest-resolve/build/index.js:551:17)
at Object.<anonymous> (../node_modules/@sygnum/redis-client/index.ts:1:1)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 3.183 s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
我错过了什么?
我的完整 tsconfig:
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"rootDir": "./",
}
}
【问题讨论】:
标签: javascript typescript jestjs nestjs