2016-02-13 5 views
7

Ich habe diese Komponente:Jest: kann nicht Modul innerhalb Modul erforderlich findet getestet (relativer Pfad) zu

import React from 'react'; 
import VideoTag from './VideoTag'; 
import JWPlayer from './JWPlayer'; 

class VideoWrapper extends React.Component { 
//... component code 
} 

, die auf einiger Logik macht eine andere Komponente innerhalb (Videotag oder JWPlayer), aber wenn ich versuche zu testen es in einem Scherz Datei erhalte ich die Fehlermeldung:

kann nicht Modul

die drei coponents im selben Verzeichnis sind ‚./VideoTag‘ finden, ist, warum es tatsächlich funktioniert, wenn ich es transpile und es in Aktion sehen in einem Browser aber sieht aus wie Jest ist die Lösung von Problemen, diese relativen Pfade aufweisen, ist dies die Scherz-Datei:

jest.dontMock('../src/shared/components/Video/VideoWrapper.jsx'); 

import React from 'react'; 
import ReactDOM from 'react-dom'; 
TestUtils from 'react-addons-test-utils'; 

import VideoWrapper from '../src/shared/components/Video/VideoWrapper.jsx'; 

describe('VideoWrapper tests',() => { 
    it('Render JWPlayer',() => { 

     let vWrapper = TestUtils.renderIntoDocument(
     < VideoWrapper model={model} /> 
); 

    }); 
}); 

Der Fehler in Zeile ist:

import VideoWrapper from '../src/shared/components/Video/VideoWrapper.jsx'; 

Wie kann ich feststellen Scherz, wie relative Pfade zu behandeln?

Antwort

9

Das Problem ist nicht die Wege waren, war es für die Module nur mit Js Erweiterung suchen, es funktionierte nach dem .jsx im Scherz Konfiguration hinzufügen:

"moduleFileExtensions": [ 
    "js", 
    "jsx" 
] 
1

Sie brauchen nicht moduleFileExtensions hinzufügen in Die Konfiguration für diese beiden Optionen seit jest verwendet ['js', 'jsx', 'json', 'node'] als Standard-Dateierweiterungen. (Es sei denn, Sie möchten ausdrücklich jede Option überspringen)