Конфигурация Jest create-react-app не должна быть доступна без извлечения. react-script test
программно запускает Jest с динамически генерируемой конфигурацией. Он экспортируется в файл конфигурации stati c на eject
.
Проблема в том, что извлечение по-прежнему не позволяет запускать тесты таким же образом с Jest CLI, потому что в извлеченном проекте Jest все еще запускается программно через scripts/test.js
. Скрипт отвечает за настройку CRA переменных окружения , они должны быть дополнительно предоставлены Jest CLI. Этот следует оценивать либо в jest.config. js, либо в globalSetup
файле:
process.env.BABEL_ENV = 'test';
process.env.NODE_ENV = 'test';
process.env.PUBLIC_URL = '';
require('react-scripts/config/env');
Eject
Учитывая, что невыбранные проекты не предоставляют никаких преимущества, которые присущи сгенерированным проектам, таким как строительные леса, предпочтительнее извлекать, как только потребуется какая-либо настройка. быть клонированным и извлеченным, то конфигурация Jest (config/jest/*.*
и jest
запись из package.json
) передается в невыбранный проект. Это может быть достигнуто с помощью Git ветвей.
Обходной путь
В качестве альтернативы можно получить сгенерированную конфигурацию аналогично тому, как это делает CRA с помощью взлома, который полагается на react-scripts
внутренности :
jest.config. js
process.env.BABEL_ENV = 'test';
process.env.NODE_ENV = 'test';
process.env.PUBLIC_URL = '';
require('react-scripts/config/env');
const path = require('path');
const createJestConfig = require('react-scripts/scripts/utils/createJestConfig');
module.exports = createJestConfig(
relativePath => require.resolve(path.join('react-scripts', relativePath)),
__dirname, // given that Jest config is in project root
false
);