Тестване на две среди с шега

Бих искал да задам две различни среди и да мога да стартирам и двете в режим на гледане.

|-- /server
|     |-- index.js  <-  Node
|-- /client
|     |-- index.js  <-  jsdom
|-- package.json

Всъщност стартирам шега два пъти за всяка среда, като предоставям различен конфигурационен файл за всяка:

$ yarn test -- --config=server.config.json
$ yarn test -- --config=client.config.json 

Но това не ми позволява да изпълнявам и двете едновременно.


person Juan Je García    schedule 25.12.2016    source източник


Отговори (2)


РЕДАКТИРАНЕ (януари 2018):

Вече е възможно да се направи това (от Jest v20) и опцията се нарича projects. Прочетете повече за в документите.

По принцип можете да дефинирате масив от вашите проекти, в които искате Jest да се изпълнява:

{
  "projects": ["<rootDir>/client", "<rootDir>/server", "<rootDir>/some-glob/*"]
}

Само не забравяйте, че всеки проект трябва да има своя собствена конфигурация. Ако искате конфигурацията да се вземе автоматично, поставете я във файл jest.config.js или както обикновено в package.json.

Ако предпочитате да поставите конфигурацията си някъде другаде (напр. в configs/jest.js), ще трябва да посочите пътя на конфигурационния файл (с правилно зададена опция rootDir):

{
  "projects": ["<rootDir>/client/configs/jest.js", "<rootDir>/server/configs/jest.js"]
}

ОРИГИНАЛЕН ОТГОВОР:

В момента това не е възможно, но има проблем за този случай: https://github.com/facebook/jest/issues/1206.

Чувствайте се свободни да се включите и да оставите коментар!

person Michał Pierzchała    schedule 14.02.2017
comment
Виждам, че това е възможно с Jest 20+. Как правилно да настроите това сега? Трябва ли ми различен jest.config.js например? РЕДАКТИРАНЕ: Добре, така че намерих решение: Един от начините, по които го направих, е да взема оригиналната си конфигурация за шега от най-високо ниво и да я поставя в масива projects за моята оригинална среда и след това да дефинирам втора конфигурация за моята среда Node. Това изглежда работи с един (1) дефиниран файл jest.config.js! - person Con Antonakos; 21.01.2018
comment
Страхотно, че се справи! Можете също така да подадете масив от пътища към вашите проекти или дори глобус, където всеки проект трябва да има някакъв вид конфигурация (или jest.config.js, или jest запис в package.json). - person Michał Pierzchała; 22.01.2018

Можете също да използвате блока @jest-environment doc, за да зададете тестови среди на базата на файл :

/**
 * @jest-environment jsdom
 */

test('use jsdom in this test file', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});
person Aleksi    schedule 22.07.2020