ts-jest проблема с модульным тестированием

Пытается выполнить модульное тестирование облачных функций firebase с помощью ts-jest, но возникают проблемы с простым тестом.

Я установил jest для машинописного текста, набора текста и конфигурации ts-jest, но получаю сообщение об ошибке @types/jest не установлено.

main.test.ts

/// <reference types="jest" />

import { database } from '../src/firestore';

test('Firestore is initialized', () => {
    expect(database).toBeDefined();
});

сообщение об ошибке: Не удается найти имя "тест". Вам нужно установить определения типов для средства выполнения тестов? Попробуйте npm i @types/jest или npm i @types/mocha.ts (2582)

версия: @types/[email protected]


person Carrie M.    schedule 24.10.2019    source источник
comment
Вы пытались удалить node_modules и выполнить npm i?   -  person ajorquera    schedule 25.10.2019
comment
Пробовал уже, разницы не было.   -  person Carrie M.    schedule 25.10.2019
comment
Я исправил свою проблему таким образом, stackoverflow.com/a/59463822/4298218, может быть, это вам поможет!   -  person Hamish Johnson    schedule 24.12.2019


Ответы (1)


Возможно, настройка в вашем проекте вообще не завершена, я выполнил краткое руководство для firebase functions, развернутые в моем проекте, а затем установили зависимости, используя:

npm установить jest @ типы / jest firebase-functions-test ts-jest -D

Добавил тестовый скрипт в мой package.json

"test": "jest --watchAll --verbose = false"

и, наконец, настроил jest (jest.config.js) в моем проекте (в моем каталоге функций)

// this config includes typescript specific settings
// and if you're not using typescript, you should remove `transform` property
module.exports = {
    transform: {
        '^.+\\.tsx?$': 'ts-jest',
    },
    testRegex: 'src(/testing/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
    testPathIgnorePatterns: ['lib/', 'node_modules/'],
    moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
    testEnvironment: 'node',
    rootDir: 'src',
}

После всего этого я создал каталог тестирования внутри папки function / src и написал такой простой тест внутри тестирования

test("should pass", () => {
    // test test lol
    expect(1).toBe(1);
});

Наконец, вы можете взглянуть на мой файл package.json, если у вас есть какие-либо сомнения относительно используемых мной зависимостей.

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log",
    "test": "jest --watchAll --verbose=false"
  },
  "engines": {
    "node": "8"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "^8.6.0",
    "firebase-functions": "^3.3.0"
  },
  "devDependencies": {
    "@types/jest": "^24.0.19",
    "firebase-functions-test": "^0.1.6",
    "jest": "^24.9.0",
    "ts-jest": "^24.1.0",
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  },
  "private": true
}
person chinoche    schedule 25.10.2019
comment
Привет, @chinoche, конфигурация моего проекта соответствует приведенной выше, и я все еще получаю ту же ошибку машинописного текста ????????‍♀️ - person Carrie M.; 25.10.2019
comment
Хм, я не совсем уверен, что могло вызвать эту ошибку в вашей среде разработки, я создал небольшое репо , вы можете клонировать его и протестировать в своей среде, чтобы удалить, если это проблема среды или это связано с конфигурацией проекта. - person chinoche; 31.10.2019