2016-05-18 2 views
8

Настройка шутя тест («App-test.js») для действия Redux («App.js») в директории app/__tests__:Реагировать & Jest: Не удается найти модуль из тестового файла

Вот заголовок из App.js:

jest.unmock('../../modules/actions/App.js') 

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

import * as App from '../../modules/actions/App.js' 

В app/ есть модуль config.js. Это импортируется там, где это необходимо.

Проблема, когда я бегу мои шутя тесты, такие как App-test.js, он ищет конфигурации и не найдя его:

FAIL __tests__/actions/App-test.js 
Runtime Error 
Error: Cannot find module 'config' from 'User.js' 

И User.js импортирует config так: import config from 'config'

User.js - другое действие используется App.js.

Любые идеи?

+3

Опубликуйте еще какой-нибудь код, который путается без кода, чтобы узнать, что нужно для исправления. Может быть проблема с тем, как вы используете 'export'. –

+4

Возможно, это опечатка, но я не уверен ... Попробуйте добавить ./ в путь конфигурации, так что это будет импортный конфиг из «./config»; Может быть, шутка пытается добраться до пакета с именем config в node_modules? Я не знаю, какую версию шутки вы используете, но automocking отключен, так как v15.0.0 - https://github.com/facebook/jest/blob/master/CHANGELOG.md#jest-1500 – hinok

ответ

0

Вы должны указать расположение модуля, в противном случае Node.js будет пытаться угадать место для вас, как:

node_modules/config.js 
node_modules/config/index.js 
node_modules/config/package.json 

Проблема в коде является предположение о том, что узел будет искать файл в желаемое местоположение, как вы можете видеть в алгоритме, представленном в предыдущих строках.

Чтобы исправить эту проблему, вы должны указать расположение внутри user.js файла, например, проверить гипотетическую организацию файла:

/ 
/config.js 
/app 
/app/User.js 

Затем вы бы импортировать внутри user.js:

import config from '../config.js' 

Файл config.js относится к User.js, который находится в родительском каталоге.

Смежные вопросы