«Тесты не найдены» при запуске jest из командной строки - PullRequest
1 голос
/ 07 марта 2019

В проекте React, построенном с create-react-app, где тестовые файлы находятся в той же папке рядом с кодом, который они должны тестировать, например:

|- /src/path
|  |- List.tsx
|  |- List.test.tsx

при попыткечтобы запустить npx jest, или используя глобальный jest, я получаю следующий результат:

No tests found
In C:\src\path
  34 files checked.
  testMatch: **\*test.tsx,**/*test.tsx,src\**\*.test.tsx,src/**/*.test.tsx,C:\src\path\src\**\*.test.tsx,C:\src\path\src\**\*.test.tsx - 0 matches
  testPathIgnorePatterns: \\node_modules\\ - 34 matches
Pattern:  - 0 matches

Запуск npm test - который по очереди запускает скрипт react-scripts test из package.json - работает нормальнои может найти и запустить все тесты в проекте (в режиме просмотра).

Есть идеи, как решить эту проблему?

Среда

  • узел: 10.15.0
  • npm: 6.4.1
  • реакции-скрипты: 2.1.3
  • Операционная система: Windows 10 1809 17763.316

шутка.config.js

module.exports = {
  testMatch: [
    '**\\*test.tsx',
    '**/*test.tsx',
    'src\\**\\*.test.tsx',
    'src/**/*.test.tsx',
    '<rootDir>\\src\\**\\*.test.tsx',
    '<rootDir>/src/**/*.test.tsx',
    'src/.*|(.|/)(.test).tsx?$'
  ],
};

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Согласно этому ответу , проекты, созданные с create-react-app, не предназначены для непосредственного тестирования с jest.

react-scripts test следует использовать вместо jest дляиспользовать конфигурацию Jest, созданную настройкой CRA.

0 голосов
/ 07 марта 2019

Вы пытались использовать / в качестве разделителя каталогов?

С Jest Docs :

См. Пакет micromatch для получения подробной информации о шаблонах, которые вы можете указать.

Из Документы Micromatch :

Micromatch исключительно и явно резервирует обратную косую черту для экранирования символов в шаблоне глобуса, даже в окнах. Это соответствует поведению bash.

...

Другими словами, поскольку \\ зарезервировано как экранирующий символ в глобах, в Windows path.join('foo', '*') приведет к foo\\*, что говорит micromatch, что * соответствует буквальному символу. Это то же поведение, что и bash.

Так что я бы попробовал:

module.exports = {
  testMatch: [ '**/*.test.tsx' ]
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...