jest 和 npm 没有运行测试,只是挂起

问题描述 投票:0回答:2

我不熟悉node.js,因为我仍在学习前端,但是我已经开始通过 exercism.com 练习前端,这需要你使用 npm 和 jest 通过他们的测试套件运行测试。所以我实在是无能为力,也没有人可以问,希望能得到一些答案。

我正在尝试在 Windows 10 中的 git bash 中运行命令“npm test”。当我运行前几个测试时,它运行良好,但只有一个测试要运行,因为其他测试被阻止了。当我在所有条件下运行测试时,它开始出现这个问题。我用谷歌搜索了很多,这是我尝试过的:

  • 更新节点
  • 更新笑话
  • 运行-i
  • 运行--runInBand
  • 运行-i --runInBand

它只是挂起。最后一行看起来像这样:

开玩笑——无缓存./*

真正的亮点是:我可以在之前的任何练习中运行 npm test,并且运行得很好。我真的很想了解这里的问题。我不知道有必要分享哪些信息,所以这里是相关的:

$ 节点-v v11.13.0

$ 开玩笑-v 25.5.4

package.json 文件:

{
  "name": "exercism-javascript",
  "description": "Exercism exercises in Javascript.",
  "author": "Katrina Owen",
  "private": true,
  "repository": {
    "type": "git",
    "url": "https://github.com/exercism/javascript"
  },
  "devDependencies": {
    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.9.6",
    "@babel/plugin-syntax-bigint": "^7.8.3",
    "@babel/preset-env": "^7.9.6",
    "@types/jest": "^25.2.1",
    "@types/node": "^13.13.4",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^25.5.1",
    "eslint": "^6.8.0",
    "eslint-plugin-import": "^2.20.2",
    "jest": "^25.5.4"
  },
  "jest": {
    "modulePathIgnorePatterns": [
      "package.json"
    ]
  },
  "scripts": {
    "test": "jest --no-cache ./*",
    "watch": "jest --no-cache --watch ./*",
    "lint": "eslint .",
    "lint-test": "eslint . && jest --no-cache ./* "
  },
  "license": "MIT",
  "dependencies": {}
}

这是测试文件,显示测试前面没有“x”:

import { steps } from './collatz-conjecture';

describe('steps()', () => {
  test('zero steps for one', () => {
    expect(steps(1)).toEqual(0);
  });

  test('divide if even', () => {
    expect(steps(16)).toEqual(4);
  });

  test('even and odd steps', () => {
    expect(steps(12)).toEqual(9);
  });

  test('Large number of even and odd steps', () => {
    expect(steps(1000000)).toEqual(152);
  });

  test('zero is an error', () => {
    expect(() => {
      steps(0);
    }).toThrow(new Error('Only positive numbers are allowed'));
  });

  test('negative value is an error', () => {
    expect(() => {
      steps(-15);
    }).toThrow(new Error('Only positive numbers are allowed'));
  });
});

谢谢!

node.js testing jestjs
2个回答
2
投票

因为我在进行锻炼练习时偶然发现了类似的问题,然后才最终弄清楚。您正在使用“npm test”测试的代码很可能存在无限循环或错误,因此是其挂起的原因。至少当我查看代码时这是我的问题。


0
投票

尝试删除node_modules、.next和所有与缓存相关的文件夹(主要是运行“npm run dev”后创建的文件夹),重新启动VSCode并运行“npm run test”。可能有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.