尝试运行 jest 的 jest 版本不正确

Hex*_*cii 6 jestjs

我在我的角度项目中有玩笑测试。

\n\n

我有一个 package.json 文件,指定我想用来运行测试的 jest 版本。该文件包括:

\n\n
"@types/jest": "^24.0.18",\n"jest": "^24.9.0",\n"jest-preset-angular": "^7.1.1",\n
Run Code Online (Sandbox Code Playgroud)\n\n

jest 配置还包括:

\n\n
"setupFilesAfterEnv": [\n  "<rootDir>/setup-jest.ts"\n],\n
Run Code Online (Sandbox Code Playgroud)\n\n

这就是问题发生的地方。当尝试跑步时jest,我收到以下消息:

\n\n
\xe2\x97\x8f Validation Warning:\n\nUnknown option "setupFilesAfterEnv" with value ["<rootDir>/setup-jest.ts"] was found.\nThis is probably a typing mistake. Fixing it will remove this message.\n\nConfiguration Documentation:\nhttps://jestjs.io/docs/configuration.html\n
Run Code Online (Sandbox Code Playgroud)\n\n

我看了一下jest -h,发现了一个标志,它为我提供了笑话环境的设置。

\n\n
jest --showConfig\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,这表明我正在版本上运行笑话

\n\n
"version": "23.6.0"\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我的问题就在这里。为什么在我做了之后npm i,尝试运行测试的笑话版本是不同的/旧的。

\n\n

我尝试使用-gflag 和save-devflag 安装 jest-cli 。

\n\n

还尝试在 VS Code 中运行测试,如果有帮助的话。

\n\n

请帮忙。

\n\n

先感谢您。

\n\n

完整日志npx jest --showConfig

\n\n
\xe2\x97\x8f Validation Warning:\n\n  Unknown option "setupFilesAfterEnv" with value ["<rootDir>/setup-jest.ts"] was found.\n  This is probably a typing mistake. Fixing it will remove this message.\n\n  Configuration Documentation:\n  https://jestjs.io/docs/configuration.html\n\n{\n  "configs": [\n    {\n      "automock": false,\n      "browser": false,\n      "cache": true,\n      "cacheDirectory": "/var/folders/bs/wrvrgl6132df8l5ndxv40m3m0000gn/T/jest_dx",\n      "clearMocks": false,\n      "coveragePathIgnorePatterns": [\n        "/node_modules/",\n        "setup-jest.ts"\n      ],\n      "detectLeaks": false,\n      "detectOpenHandles": false,\n      "errorOnDeprecated": false,\n      "filter": null,\n      "forceCoverageMatch": [],\n      "globals": {\n        "ts-jest": {\n          "tsConfig": "<rootDir>/tsconfig.spec.json",\n          "stringifyContentPathRegex": "\\\\.html$",\n          "astTransformers": [\n            "jest-preset-angular/InlineHtmlStripStylesTransformer"\n          ]\n        }\n      },\n      "haste": {\n        "providesModuleNodeModules": []\n      },\n      "moduleDirectories": [\n        "node_modules"\n      ],\n      "moduleFileExtensions": [\n        "ts",\n        "html",\n        "js",\n        "json"\n      ],\n      "moduleNameMapper": [\n        [\n          "@app/(.*)",\n          "/Users/name/Projects/project/src/app/$1"\n        ],\n        ...\n      ],\n      "modulePathIgnorePatterns": [],\n      "name": "6caa4...",\n      "prettierPath": "/Users/name/Projects/project/node_modules/prettier/index.js",\n      "resetMocks": false,\n      "resetModules": false,\n      "resolver": null,\n      "restoreMocks": false,\n      "rootDir": "/Users/name/Projects/project",\n      "roots": [\n        "/Users/name/Projects/project"\n      ],\n      "runner": "jest-runner",\n      "setupFiles": [],\n      "setupTestFrameworkScriptFile": null,\n      "skipFilter": false,\n      "snapshotSerializers": [],\n      "testEnvironment": "/Users/name/Projects/project/node_modules/jest-environment-jsdom-thirteen/build/index.js",\n      "testEnvironmentOptions": {},\n      "testLocationInResults": false,\n      "testMatch": [\n        "**/__tests__/**/*.js?(x)",\n        "**/?(*.)+(spec|test).js?(x)"\n      ],\n      "testRegex": "",\n      "testRunner": "/Users/name/node_modules/jest-jasmine2/build/index.js",\n      "testURL": "http://localhost",\n      "timers": "real",\n      "transform": [\n        [\n          "^.+\\\\.(ts|js|html)$",\n          "/Users/name/Projects/project/node_modules/ts-jest/dist/index.js"\n        ]\n      ],\n      "watchPathIgnorePatterns": []\n    }\n  ],\n  "globalConfig": {\n    "bail": false,\n    "changedFilesWithAncestor": false,\n    "collectCoverage": true,\n    "collectCoverageFrom": null,\n    "coverageDirectory": "/Users/name/Projects/project/coverage",\n    "coverageReporters": [\n      "json",\n      "text",\n      "lcov",\n      "clover"\n    ],\n    "coverageThreshold": null,\n    "detectLeaks": false,\n    "detectOpenHandles": false,\n    "errorOnDeprecated": false,\n    "expand": false,\n    "filter": null,\n    "globalSetup": null,\n    "globalTeardown": null,\n    "listTests": false,\n    "maxWorkers": 7,\n    "noStackTrace": false,\n    "nonFlagArgs": [],\n    "notify": false,\n    "notifyMode": "always",\n    "passWithNoTests": false,\n    "projects": null,\n    "rootDir": "/Users/name/Projects/project",\n    "runTestsByPath": false,\n    "skipFilter": false,\n    "testFailureExitCode": 1,\n    "testPathPattern": "",\n    "testResultsProcessor": null,\n    "updateSnapshot": "new",\n    "useStderr": false,\n    "verbose": null,\n    "watch": false,\n    "watchman": true\n  },\n  "version": "23.6.0"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

npm config get也在这里显示日志:

\n\n
; cli configs\nmetrics-registry = "http://.../.../npm-group/"\nscope = ""\nuser-agent = "npm/6.9.0 node/v10.15.3 darwin x64"\n\n; project config /Users/user/Projects/project/.npmrc\nregistry = "http://.../.../npm-group/"\n\n; node bin location = /Users/user/.nvm/versions/node/v10.15.3/bin/node\n; cwd = /Users/user/Projects/project\n; HOME = /Users/user\n; "npm config ls -l" to show all defaults. \n
Run Code Online (Sandbox Code Playgroud)\n

Mik*_*keL 1

我遇到了同样的问题,经过长时间的搜索,我尝试了以下方法:

type jest
Run Code Online (Sandbox Code Playgroud)

这给了我位置:

/usr/local/bin/jest
Run Code Online (Sandbox Code Playgroud)

重命名该文件(或删除它),解决了问题(请注意,现在运行jest将给出command not found)。