Модуль тестирования Jest не найден - PullRequest
0 голосов
/ 08 апреля 2020

Я тестирую свое js приложение с jest . В моем пакете. json Я сопоставляю все модули, как описано в документации :

 "jest": {
    "moduleNameMapper": {
      "@db/(.*)": "<rootDir>/db/$1",
      "@src/(.*)": "<rootDir>/src/$1",
      "@dto/(.*)": "<rootDir>/src/dto/$1",
      "@repos/(.*)": "<rootDir>/src/repos/$1",
      "@fetchers/(.*)": "<rootDir>/src/fetchers/$1",
      "@controllers/(.*)": "<rootDir>/src/controllers/$1",
      "@parsers/(.*)": "<rootDir>/src/parsers/$1",
      "@streams/(.*)": "<rootDir>/src/streams/$1",
      "@validators/(.*)": "<rootDir>/src/validators/$1"
    }
  },

Однако, когда я создаю экземпляр RestRepo, который содержит импорт вверху, я получаю эта ошибка при выполнении теста:

Cannot find module '@db' from 'RestRepo.js'

Require stack:
  src/repos/RestRepo.js
  tests/unit/RestEndpoint.test.js

> 1 | const { RestEndpoint } = require('@db');
    |                          ^
  2 | 
  3 | class RestRepo {

Как я могу это исправить и почему это происходит?

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете попробовать заменить

"@db/(.*)": "<rootDir>/db/$1",

на

"@db(.*)": "<rootDir>/db$1",

, чтобы группа захвата соответствовала необязательному sla * sh /, если он присутствует, и

* 1009. *

будет интерпретироваться как

require("<rootDir>/db");

или просто добавьте еще одну запись

"@db": "<rootDir>/db",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...