2016-12-25 5 views
7

Ich möchte zwei verschiedene Umgebungen einstellen und beide im Watch-Modus ausführen können.Testen von zwei Umgebungen mit Jest

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

Eigentlich laufe ich Scherz zweimal für jede Umgebung, eine andere Konfigurationsdatei für jede bereitstellt:

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

Aber das ich beide nicht läßt bei gleichzeitig laufen.

Antwort

4

EDIT (Jan 2018):

Es ist nun möglich, dies zu tun (da Jest v20) und die Option projects genannt. Lesen Sie mehr über it the docs.

Grundsätzlich können Sie eine Reihe von Ihrer Projekte definieren Sie Jest wollen innerhalb ausgeführt werden:

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

Denken Sie daran, jedes Projekt seine eigene Konfiguration haben muss. Wenn Sie möchten, dass die Konfiguration automatisch übernommen wird, legen Sie sie in die Datei jest.config.js oder wie gewöhnlich in package.json.

Wenn Sie Ihre Config woanders (zB in configs/jest.js) platzieren, die Sie benötigen, um den Pfad der Konfigurationsdatei (mit der Option rootDir richtig eingestellt ist) Punkt:

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

ORIGINAL ANTWORT :

Derzeit ist dies nicht möglich, aber es gibt ein Problem für diesen Fall: https://github.com/facebook/jest/issues/1206.

Fühlen Sie sich frei, zu springen und einen Kommentar zu hinterlassen!

+0

Ich sehe, dass dies mit Jest 20+ möglich ist. Wie stellst du das jetzt richtig auf? Brauche ich zum Beispiel verschiedene jest.config.js? * EDIT *: Ok, also habe ich eine Lösung gefunden: Eine Möglichkeit, wie ich es gemacht habe, ist meine ursprüngliche Top-Level-Jest-Konfiguration, und legen Sie es in das 'Projects'-Array für meine ursprüngliche Umgebung, und definieren Sie dann eine zweite Konfiguration für meine Knotenumgebung. Das schien mit einer (1) jest.config.js Datei zu funktionieren! –

+0

Großartig, du hast es geschafft! Sie können auch ein Array von Pfaden an Ihre Projekte übergeben, oder sogar einen Glob, wo jedes Projekt irgendeine Art von Konfiguration haben muss (entweder 'jest.config.js' oder' jest' in 'package.json'). –

Verwandte Themen