Как использовать разные jest.config. js для модульных и компонентных тестов? - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать отдельный набор тестов для тестирования приложения на уровне компонентов.

В этом отдельном наборе мне понадобится настраиваемая тестовая среда, которая загружает некоторые макеты уровня сохраняемости, и эти тесты будут размещены в отдельной папке в моей структуре проекта из моих модульных тестов.

например, модульные тесты будут рядом с кодом в папках __tests__, тогда как тесты компонентов будут в каталоге tests/ верхнего уровня.

У меня уже есть большая часть моих шуток. config. js setup, но когда я добавил раздел projects для переопределения некоторых полей, в частности testMatch и testEnvironment, он полностью проигнорировал мою конфигурацию, указанную в global.

Теперь я читал, что конфигурация projects в основном касается настроек монорепозитория, поэтому я не думаю, что это правильный подход.

В идеале я мог бы просто иметь отдельный jest.config.js в моем tests/ каталоге, но я не вижу, как это настроить, если это вообще работает.

Любое понимание этой проблемы было бы полезно. Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 09 мая 2020

Чтобы указать разные файлы конфигурации, вы можете использовать параметр --config.

Например, если у вас есть конфигурация файла tests/jest.config.js для тестов компонентов и файл jest.config.js для ваших модульных тестов вы можете настроить сценарии в вашем package.json так, чтобы они выглядели примерно так:

"scripts": {
    "tests:unit": "jest --config=jest.config.js",
    "tests:component": "jest --config=tests/jest.config.js"
}
0 голосов
/ 23 мая 2020

В итоге я указал отдельные проекты в package.json

"jest": {
    "projects": [
        "<rootDir>/jest.unit.config.js",
        "<rootDir>/tests/jest.component.config.js"
    ]
}

. Это позволило мне запустить jest самостоятельно, и он будет запускать все проекты, или если я хотел указать конкретную конфигурацию c для запуска, я мог бы запустить jest --projects jest.unit.config.js, и она просто запустит этот конкретный c проект.

Я мог бы также добавить в свой пакет раздел сценариев. json, чтобы их было легче запускать.

"scripts": {
    "tests:unit": "jest --projects tests/jest.component.config.js",
    "tests:component": "jest --projectsjest.unit.config.js"
}
...