当我使用
jest --silent
: 运行测试时,我总是会打印此消息
Jest 在测试运行完成后一秒没有退出。
这通常意味着存在未完成的异步操作 在你的测试中停止了。考虑运行 Jest
解决此问题。--detectOpenHandles
但是当我运行
jest --silent --detectOpenHandles
时,没有什么特别的事情发生,没有额外的消息,没有警告,什么也没有。它就正确完成了。
我正在使用:
"jest": "^26.6.3",
"jest-extended": "^0.11.5",
"jest-preset-angular": "^8.3.2",
"ts-jest": "^26.4.4",
"ts-mockito": "^2.6.1",
我的配置是:
const ignoredFiles = [
'<rootDir>/src/test.ts',
'<rootDir>/src/main.ts',
'<rootDir>/src/jest-global.mocks.ts',
'<rootDir>/src/polyfills.ts',
'<rootDir>/src/test-helpers.ts',
'<rootDir>/src/mocks',
'<rootDir>/plugins/',
'<rootDir>/coverage/',
'<rootDir>/scripts/',
'<rootDir>/android/',
'<rootDir>/e2e/',
'<rootDir>/ssd_hooks/',
'<rootDir>/typings/',
'<rootDir>/platforms/',
'<rootDir>/plugins/',
'<rootDir>/resources/',
'<rootDir>/manual-plugins/'
];
module.exports = {
preset: 'jest-preset-angular',
setupFilesAfterEnv: ['<rootDir>/src/setupJest.ts'],
transformIgnorePatterns: ['<rootDir>/node_modules/(?!@ionic|@saninn|@ngrx|@capacitor-community)'],
coverageReporters: process.env.CI ? ['text'] : ['lcov'],
testPathIgnorePatterns: ['/node_modules/', ...ignoredFiles],
modulePathIgnorePatterns: ['<rootDir>/coverage/', '<rootDir>/plugins/'],
collectCoverage: false,
notify: true,
coverageDirectory: './coverage',
collectCoverageFrom: ['<rootDir>/src/**/*.ts', '!**/*.module.ts', '!**/*.enum.ts'],
coveragePathIgnorePatterns: ['/node_modules/', 'package.json', ...ignoredFiles],
globals: {
'ts-jest': {
tsconfig: '<rootDir>/src/tsconfig.spec.json',
diagnostics: {
ignoreCodes: [
6138, // declared but never read
6133, // declared but never used,
2322 // object should just have known keys
]
}
}
}
};
如何找到导致 Jest 显示该警告的原因?
我正在查看一些 Stack Overflow 帖子,并发现 this post 关于这个问题。
我对第一个答案做了一些测试,它有效。只需添加:
// ... etc etc
"scripts": {
"test": "jest --forceExit"
}
// ... etc etc
这应该可以解决你的问题!希望这有效