ts-jest тесты, запущенные на CircleCI, занимают более 10 минут в течение ~ 30 тестов, а на локальной машине - 6 секунд - PullRequest
0 голосов
/ 30 марта 2020

У меня проблемы с запуском ts-jest на CircleCI. Я не совсем уверен, что здесь происходит, но когда я запускаю jest на своей локальной машине, тесты заканчиваются sh за 6 секунд. Когда я запускаю их в CircleCI, они либо заканчивают sh примерно за 10 минут, либо сборка взрывается из-за переполнения памяти примерно через минуту на этапе тестирования.

Некоторые из моих подозрений включают в себя то, как я отображаю .png файлы в пустой js файл, версию jest, которую я использую (которая необходима, так как мне нужно, чтобы она могла работать с react-scripts build), или у меня есть тест с утечкой памяти где-то.

Вот мой jest.config. js:

module.exports = {
    roots: ['<rootDir>/src'],
    transform: {
        '^.+\\.tsx?$': 'ts-jest',
    },
    testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
    moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
    setupFiles: [
        './setupTests.ts'
    ],
    moduleNameMapper: {
        "\\.(css|less|png)$": "<rootDir>/mocks/styleMock.js"
    }
}

А вот мой пакет. json:

{
    "name": "project",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "@testing-library/jest-dom": "4.2.4",
        "@testing-library/react": "9.4.1",
        "@testing-library/user-event": "7.2.1",
        "@types/enzyme": "3.10.5",
        "@types/jest": "24.9.1",
        "@types/lodash": "^4.14.149",
        "@types/node": "12.12.28",
        "@types/react": "16.9.23",
        "@types/react-beautiful-dnd": "^12.1.1",
        "@types/react-dom": "16.9.5",
        "@types/reactstrap": "^8.4.2",
        "aws-sdk": "^2.627.0",
        "bootstrap": "^4.4.1",
        "dotenv": "^8.2.0",
        "enzyme": "3.11.0",
        "enzyme-adapter-react-16": "1.15.2",
        "jest": "24.9.0",
        "lodash": "^4.17.15",
        "react": "16.12.0",
        "react-beautiful-dnd": "^13.0.0",
        "react-dom": "16.12.0",
        "react-router-dom": "^5.1.2",
        "react-scripts": "3.4.0",
        "reactstrap": "^8.4.1",
        "ts-jest": "25.2.1",
        "typescript": "3.7.5"
    },
    "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "deploy": "npm run build && aws s3 sync build/ s3://bitter-jester-data-manager",
        "test": "jest",
        "eject": "react-scripts eject",
        "buildEnv": "./buildEnv.sh"
    },
    "eslintConfig": {
        "extends": "react-app"
    },
    "browserslist": {
        "production": [
            ">0.2%",
            "not dead",
            "not op_mini all"
        ],
        "development": [
            "last 1 chrome version",
            "last 1 firefox version",
            "last 1 safari version"
        ]
    },
    "devDependencies": {
        "css-loader": "^3.4.2",
        "react-test-renderer": "16.12.0",
        "style-loader": "^1.1.3"
    },
    "jest": {
        "moduleNameMapper": {
            "\\.(css|less|png)$": "<rootDir>/__mocks__/styleMock.js"
        }
    }
}

И вот что я делаю для файлы .png:

module.exports = {};

Если у кого-нибудь есть какие-либо идеи о том, в чем может быть проблема, или о методах отладки, я был бы очень признателен.

...