2016-12-25 12 views
7

Chciałbym ustawić dwa różne środowiska i być w stanie działać zarówno w trybie oglądania.Testowanie dwóch środowisk za pomocą jest

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

Właściwie biegnę żart dwukrotnie dla każdego środowiska, zapewniając inny plik konfiguracyjny dla każdego:

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

Ale to nie pozwala mi uruchomić zarówno w tym samym czasie.

Odpowiedz

4

EDIT (styczeń 2018):

Jest obecnie możliwe, aby to zrobić (od żartem V20), a opcja nazywa projects. Przeczytaj więcej o it the docs.

Zasadniczo można zdefiniować tablicę swoich projektów chcesz żartem do uruchomienia w ciągu:

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

Wystarczy pamiętać, każdy projekt musi mieć swój własny config. Jeśli chcesz, aby konfiguracja była pobierana automatycznie, umieść ją wewnątrz pliku jest.config.js lub zwykle w wersji package.json.

Jeśli wolisz zawierania config gdzie indziej (np configs/jest.js), musisz wskazać ścieżkę do pliku konfiguracyjnego (z opcją rootDir prawidłowo ustawione):

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

ORIGINAL ODPOWIEDŹ :

Obecnie nie jest to możliwe, ale w tym przypadku wystąpił problem: https://github.com/facebook/jest/issues/1206.

Zapraszam do skakania i dodawania komentarzy!

+0

Widzę, że jest to możliwe przy użyciu opcji Jest 20+. Jak właściwie to teraz ustawiasz? Czy na przykład potrzebuję innego pliku jest.config.js? * EDIT *: Ok, więc znalazłem rozwiązanie: Jednym ze sposobów, w jaki to zrobiłem, jest wzięcie mojej oryginalnej konfiguracji najwyższego poziomu i umieszczenie jej w tablicy 'projects' dla mojego oryginalnego środowiska, a następnie zdefiniowanie drugiej konfiguracji dla mojego środowiska Node. To wydawało się działać z jednym (1) plikiem jest.config.js zdefiniowanym! –

+0

Świetnie, udało Ci się to wypracować! Możesz również przekazać tablicę ścieżek do swoich projektów, a nawet glob, gdzie każdy projekt musi mieć jakąś konfigurację ('jest.config.js' lub' jest' wpis w 'pakiet.json'). –

Powiązane problemy