visual studio code - typescript kan inte hitta namnet 'test' i vscode


Jag försöker använda jest i min TypeScript-applikation.

När jag kör kommandot jest, fungerar det bra.

yarn run v1.17.3
jest --coverage --verbose

C:\Users\hasee\Documents\Repository\c0-compiler>"node"  "C:\Users\hasee\Documents\Repository\c0-compiler\node_modules\.bin\\..\[email @jest\bin\jest.js" 
--coverage --verbose
 PASS  tests/sum.test.ts (6.432s)
  √ add (3ms)

----------|----------|----------|----------|----------|-------------------|    
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |    
----------|----------|----------|----------|----------|-------------------|    
All files |      100 |      100 |      100 |      100 |                   |    
 sum.ts   |      100 |      100 |      100 |      100 |                   |    
----------|----------|----------|----------|----------|-------------------|    
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        6.896s
Ran all test suites.
Done in 9.73s.

Testkoden är som

// sum.ts
export default (a: number, b: number): number => a + b;

// sum.test.ts
import sum from './sum';

test('test sum', () => expect(sum(1, 2)).toBe(3));

Men vscode säger till mig att den inte kan hitta namnet 'test'.

Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.ts(2582)

Jag har installerat typer för jest.

Jag tvivlar på att det kan vara något fel i tsconfig. Och jag ändrar konfigurationen baserat på svaret.

Men det fungerar fortfarande inte.

Förvaret är https://github.com/Zx55/c0-compiler

package.json

{
  "name": "c0-compiler",
  "version": "0.0.1",
  "private": true,
  "main": "./dist/js/main.js",
  "scripts": {
    "cli": "ts-node ./src/c0/c0-cli",
    "packapp": "webpack --config ./config/webpack.config.ts",
    "start": "electron .",
    "test": "jest --coverage --verbose"
  },
  "author": "Zx55",
  "license": "MIT",
  "devDependencies": {
    "@types/classnames": "^2.2.9",
    "@types/html-webpack-plugin": "^3.2.1",
    "@types/jest": "^24.0.18",
    "@types/node": "^12.7.3",
    "@types/react": "^16.9.2",
    "@types/react-dom": "^16.9.0",
    "@types/react-router-dom": "^4.3.5",
    "cache-loader": "^4.1.0",
    "clean-webpack-plugin": "^3.0.0",
    "css-loader": "^3.2.0",
    "electron": "^6.0.7",
    "electron-packager": "^14.0.5",
    "fork-ts-checker-webpack-plugin": "^1.5.0",
    "html-webpack-plugin": "^3.2.0",
    "jest": "^24.9.0",
    "json5": "^2.1.0",
    "object-keys": "^1.1.1",
    "object.getownpropertydescriptors": "^2.0.3",
    "omit.js": "^1.0.2",
    "source-map-loader": "^0.2.4",
    "style-loader": "^1.0.0",
    "thread-loader": "^2.1.3",
    "ts-jest": "^24.0.2",
    "ts-loader": "^6.0.4",
    "ts-node": "^8.3.0",
    "typescript": "3.5.3",
    "webpack": "^4.39.3",
    "webpack-cli": "^3.3.7"
  },
  "dependencies": {
    "antd": "^3.23.1",
    "classnames": "^2.2.6",
    "rc-animate": "^2.10.0",
    "rc-queue-anim": "^1.8.2",
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-router-dom": "^5.0.1",
    "unstated-next": "^1.1.0"
  },
  "jest": {
    "preset": "ts-jest",
    "testEnvironment": "node"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/Zx55/c0-compiler.git"
  }
}

tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "outDir": "./dist/",
        "sourceMap": true,
        "jsx": "react",
        "allowSyntheticDefaultImports": true,
        "allowJs": false,
        "noUnusedLocals": true,
        "noImplicitAny": true,
        "experimentalDecorators": true,
        "types": ["node", "jest"],
        "typeRoots": [
            "../node_modules/@types"
        ]
    },
    "include": [
        "../src/**/*.ts",
        "../src/**/*.tsx",
        "../tests/*.test.ts",
        "../tests/*.spec.ts"
    ],
    "exclude": [
        "../coverage",
        "../dist",
        "../node_modules"
    ]
}

Svar #1

Jag kunde inte få detta att fungera genom att ändra min tsconfig.json och jest.config.js, byta jest-versioner och även genom att referera till detta inlägg: kan inte hitta namnet det i jest typescript

Jag kunde ta bort felet genom att importera metoderna uttryckligen på följande sätt:

import { expect, test } from '@jest/globals';

Relaterade artiklar