CircleCI 中的 Mocha 测试显示“Workerpool Worker 意外终止”

tlh*_*man 5 mocha.js typescript circleci worker-pool yarnpkg

我使用 Yarn 和 Mocha 运行 TypeScript 测试,它们在本地运行良好。然而,当我通过 CircleCI 部署时,我得到了这个:

1) Uncaught error outside test suite:
   Uncaught Workerpool Worker terminated Unexpectedly
  exitCode: `null`
  signalCode: `SIGKILL`
  workerpool.script: `/home/circleci/my-project/node_modules/mocha/lib/nodejs/worker.js`
  spawnArgs: `/usr/local/bin/node,--inspect,--inspect=43215,/home/circleci/my-project/node_modules/mocha/lib/nodejs/worker.js`
  spawnfile: `/usr/local/bin/node`
  stdout: `null`
  stderr: `null`

Error: Workerpool Worker terminated Unexpectedly
    exitCode: `null`
    signalCode: `SIGKILL`
    spawnfile: `/usr/local/bin/node`
    stdout: `null`
    stderr: `null`
  
    at ChildProcess.<anonymous> (node_modules/workerpool/src/WorkerHandler.js:294:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:282:12)
Run Code Online (Sandbox Code Playgroud)

这是我的 CircleCI 配置。我编辑了一些特定于我的项目的字段,并删除了一些在这里没有意义的部分,因为它们用于我当前无法运行的作业,因为它们稍后会在过程中运行。

version: 2.1

orbs:
  aws-cli: circleci/aws-cli@2.0.6
  assume-role: airswap/assume-role@0.2.0

docker_base: &docker_base
  working_directory: ~/my-funnel  # Edited for privacy
  docker:
    - image: cimg/node:14.18.0
    - image: cimg/openjdk:17.0.1
    - image: amazon/dynamodb-local:1.17.1
      command: -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -inMemory -sharedDb
    - image: roribio16/alpine-sqs:1.2.0

jobs:
  build_and_test:
    <<: *docker_base
    environment:
      APP_ENV: test
      IS_CI: "true"
      # This ID remains here even though I have the Code Climate reporter stuff disabled for now
      CC_TEST_REPORTER_ID: mytestreporterid  # Hex value, redacted for privacy
    steps:
      - checkout
      - run: |
          sudo curl -L https://github.com/remind101/ssm-env/releases/download/v0.0.4/ssm-env -o /usr/local/bin/ssm-env && \
                cd /usr/local/bin && \
                echo 4a5140b04f8b3f84d16a93540daa7bbd ssm-env | md5sum -c && \
                sudo chmod +x ssm-env
      - restore_cache:
          name: Restore Yarn Package Cache
          keys:
            - yarn-packages-{{ checksum "yarn.lock" }}
      - run:
          name: Install Dependencies
          command: yarn install --frozen-lockfile
      - save_cache:
          name: Save Yarn Package Cache
          key: yarn-packages-{{ checksum "yarn.lock" }}
          paths:
            - ~/.cache/yarn
      - run: yarn run lint
      - run: yarn run test # This is where it gives me the Workerpool error
      - run: yarn run package
      - run:
          name: Run Fossa Checks
          command: ./run_fossa.sh

  # A deploy job is defined here, of course, but I'm not getting to the point where I can use it.

workflows:
  no_flow:
    jobs:
      - build_and_test:
          context:
            - fossa
      # There's more here that runs the deploy job; see above comment
Run Code Online (Sandbox Code Playgroud)

我已经xdescribe完成了所有测试,但这种情况仍然发生。想法表示赞赏。


更新:我的run.ts文件中有这一行:

const tests = child_process.spawn(
    "APP_ENV=test NODE_ENV=test ssm-env --with-decryption node_modules/mocha/bin/mocha --inspect -r ts-node/register -r tsconfig-paths/register --recursive 'test/**/*.spec.ts' --parallel",
    { stdio: "inherit", cwd: "./", shell: true }
);
Run Code Online (Sandbox Code Playgroud)

我删除了它--parallel,现在一切都很好。仍然对核心问题感到困惑,但至少这是一个解决方法。

小智 0

我曾经也有过一样的问题。

实际问题是内存不足。

我分配了更多的内存。我的问题解决了。