2016-05-06 9 views
2

Компоненты для тестирования

Я пытаюсь запустить очень простые тесты на реагирующие компоненты с Jest. Я бегу в проблемы из-за этой линии в верхней части моего компонента файлаСделать Jest игнорировать. Без импорта

import {} from './style.less'; 

импорт здесь не должны быть проверены и, в идеале быть проигнорировано из теста.

Результат [тест НПМ]

Когда тест выполняется с помощью npm test я получаю ответ

FAIL tests/app_test.js ● Runtime Error SyntaxError: Unexpected token { in file 'client/components/app/style.less'.

Make sure your preprocessor is set up correctly and ensure your 'preprocessorIgnorePatterns' configuration is correct: http://facebook.github.io/jest/docs/api.html#preprocessorignorepatterns-array-string If you are currently setting up Jest or modifying your preprocessor, try jest --no-cache . Preprocessor: node_modules/jest-css-modules. Jest tried to the execute the following preprocessed code: //some .less code

Но если я закомментируйте меньше импорта линии мой тест работает правильно.

Вопрос

Как я могу получить шутка, чтобы пропустить эту строку кода или игнорировать этот импорт?

+0

Проверить это решение http://stackoverflow.com/a/36137733/2765745 Работал для меня. –

ответ

0

Я решил такую ​​же проблему с игнорирующими стилями (https://github.com/bkonkle/ignore-styles). Я использовал эту библиотеку с моккой, но я думаю, что это должно быть в порядке со шуткой.

+0

Не работает для меня. Пробовал это, как указано в readme, но без успеха. – vkjb38sjhbv98h4jgvx98hah3fef

1

Единственный способ, которым я мог бы шутить, игнорировать меньше файлов для меня, кроме как вручную издеваться над файлом .less в верхней части теста, например.

jest.mock("../../src/styles.less",() => jest.fn()); 

Был добавить следующее к package.json:

"jest": { 
"moduleNameMapper": { 
    ".*\\.less$": "<rootDir>/pathToDummyFile/dummy.js" 
    } 
}, 

Всякий раз, когда ваш код пытается импортировать меньше файл, он будет вместо этого перенаправлять импорт, чтобы принести пустой пустой файл, который позволит избежать неожиданную ошибку маркера, которую вы испытали.

+0

Это сработало. Особое упоминание '' 'реагирует документ ', указывая на то, что если мы укажем на файл, то следует использовать' ', который разрешает абсолютный путь к файлу' dummy.js'. Я поместил эту конфигурацию в свой файл jest.config.js. –

1

Если вы до сих пор этот вопрос, попробуйте добавить следующие конфигурации в файл jest.config.json:

"transform": { "^.+\\.(css|less)$": "./styleMock.js" }

Здесь, в вашем styleMock.js вы создаете transformer, который превратят ваши .less файлов, как это :

module.exports = { process() { return '' } }

+0

Это не работает. Делая это, Jest жалуется на заявления импорта в компонентах React. '' 'import app from '../App' ^^^^^^ SyntaxError: Неожиданный импорт токена''' –

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