Kann resolve.alias nicht für JEST-Tests verwenden

9

Ich verwende WebPack + React + Jest für meine Anwendung und ich habe resolve.alias = { app: "/path/to/app" } in meiner Konfigurationsdatei festgelegt.

In React kann ich diesen Pfad verwenden ("app / component") und die Datei unter "/path/to/app/component.js" korrekt abrufen.

Beim Ausführen von JEST-Tests wird dieser Alias ​​weder in den Tests noch für die importierten Module erkannt. All das funktioniert beim Ausführen der App, aber nicht bei den Tests mit jest-cli.

    
gbbr 22.12.2014, 12:39
quelle

3 Antworten

2

jest-cli lebt in einer von Webpack getrennten Welt, so dass es nicht so funktioniert.

Verwenden Sie babel-plugin-modul-resolver , um mit Aliasing umzugehen.

    
Juho Vepsäläinen 22.04.2015, 19:30
quelle
0

Jestpack könnte helfen, da Sie damit Ihre Tests nach der Erstellung mit Webpack ausführen können. p>     

riscarrott 19.10.2015 22:01
quelle
0

Ich benutze Mokka, um zu testen, aber ich denke, es funktioniert auch für Scherz.

Sie sollten 2 Pakete verwenden: Mock-Require und < a href="https://www.npmjs.com/package/proxyquire"> proxyquire .

Angenommen, Sie haben eine js-Datei wie folgt:

app.js

%Vor%

Und Ihr Testcode sollte so schreiben:

app.test.js

%Vor%

Dateibaum

%Vor%

Spotte zuerst den Alias-Pfad, indem du in der before-Funktion mock-require machst, und spiegle dein Test-Objekt mit proxyquire in beforeEach-Funktion.

    
zhaozhiming 14.12.2015 10:07
quelle