2017-02-22 10 views
0

Ich benutze webpack resolve.extensions, um "selektiv" meine js-Dateien zu bündeln. z.Dateierweiterung mit Jest ignorieren

App.js

import MyComp from 'comp/myComp'; 

in comp/ Ordner Ich habe:

MyComp.web.js 
MyComp.ios.js 
MyComp.android.js 

Jetzt möchte ich Test für App.js schreiben, zu testen, wie es als Web machen. Aber das Problem ist Jest weiterhin alle 3 .js Dateien aufzulösen und das verursacht Abhängigkeitsfehler, weil ich den Befehl in einer mobilen Umgebung nicht ausführen und die meisten mobilen Module nicht funktionieren.

Wie kann ich Jest sagen nur .js und .web.js Dateien wie Webpack nur auflösen?

Ich habe das meinem package.json und halten .ios.js und .android.js Lösung

"moduleFileExtensions": ["web.js", "js", "jsx"], 
    "moduleDirectories": [ 
     "node_modules", 
     "main"] 

Ich habe versucht, wie vorgeschlagen:

"testPathIgnorePatterns": ["<rootDir>/node_modules/", "^.+\\.(android|ios)\\.js$"], 

sieht keine Auswirkungen :(

Antwort

1

können Sie fügen Sie testPathIgnorePatterns zu Ihrer package.json Datei hinzu.Der Wert ist ein Array von Regex-Mustern.Jeder Datei/Pfad, der mit einem Ausdruck wi übereinstimmt ll ignoriert/vom Testen übersprungen werden.

Siehe these Jest docs für weitere Einzelheiten

+0

I habe versucht '' "testPathIgnorePatterns": ["/n ode_modules /“, "^ + \\ (ios | android) \\ js $"]' ', aber immer noch nicht wie erwartet:.. S – Kossel

+0

ich auch mit' modulePathIgnorePatterns' versuchte – Kossel

+0

Ich bin Ihr Muster nicht sicher. muss so fein abgestimmt sein. Können Sie es einfach mit ["MyComp.android.js", "MyComp.ios.js"] versuchen und lassen Sie mich wissen, ob das funktioniert. –

1

Sie auch Dateien auf eine leere Datei für mich

touch empty.js 

In Ihrem Scherz Config hinzufügen folgende

moduleNameMapper: { 
    '\\.(css|jpg|png|scss|less|sass)$': '<rootDir>/empty.js', 
    }, 

funktioniert perfekt neu zuordnen kann