Почему все наборы шутниковых тестов занимают больше времени по мере роста моего проекта?
Я работаю над реагирующим проектом Typescript, и я заметил, что время, затрачиваемое на каждый набор тестов, значительно возросло по мере роста проекта. Каждый набор тестов может работать до 10-15 секунд, независимо от сложности тестов внутри него. Кажется, это проблема только при запуске данного набора тестов, так как во время выполнения между тестовыми наборами нет большой разницы.
В качестве теста я попытался выполнить только одну машинную компиляцию кода и тестовых файлов и запустить без jest-ts, но это, казалось, было намного лучше, но все равно в среднем занимало ~5 секунд на набор тестов. Существуют ли какие-либо задачи перед тестовым набором, которые выполняет jest/jest-ts, которые я должен отключить? Пытается ли он повторно выполнить шаг преобразования всего приложения перед каждым пакетом или чем-то еще, и можно ли включить что-то, что выполняет преобразование только один раз или кэширует преобразованный вывод?
Это шутливая конфигурация, которую я использую:
{
"globals": {
"ts-jest": {
"useBabelrc": true
}
},
"collectCoverageFrom": [
"src/**/*.{ts,tsx}",
"!src/**/tests/*.{ts,tsx}",
"!src/**/*.dao.ts",
"!src/**/*.enum.ts",
"!src/**/*.styles.ts",
"!src/**/*.style.ts",
"!src/components/sandbox/**/*.{ts,tsx}",
"!src/testShims/**/*",
"!src/containers/app.tsx"
],
"setupFiles": [
"<rootDir>/src/testShims/requestAnimationFrameShim.ts",
"<rootDir>/src/testShims/momentShim.ts",
"jest-localstorage-mock",
"jest-canvas-mock"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"coverageDirectory": "./test/coverage",
"testResultsProcessor": "./node_modules/jest-html-reporter",
"transform": {
"\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js",
".+\\.jsx?$": "babel-jest"
},
"testRegex": "/src/.*\\.spec\\.(ts|tsx)$",
"snapshotSerializers": [
"enzyme-to-json/serializer"
]}