2015-11-18 3 views
0

Я пытаюсь протестировать некоторые компоненты React с помощью Jest.Проблемы с использованием Jest с реакционной загрузкой

Я могу успешно протестировать a) простые JS-файлы и b) реактивировать компоненты, написанные на CJSX (Coffeescript и JSX). Была необходима некоторая конфигурация, использующая препроцессор для Jest для обработки файлов CJSX в JS, но это похоже на работу. По крайней мере, я могу протестировать простые компоненты React, написанные на CJSX. Я не думаю, что эта проблема специфична для компиляции файлов CJSX.

Однако: когда я ввожу реакцию-бутстрап, возникают проблемы. Это необходимо, потому что все компоненты, которые я хочу протестировать, используют реакцию-бутстрап.

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

Это специфическое сообщение об ошибке:

SyntaxError: пути/компоненты/scripts.cjsx: /node_modules/react-bootstrap/lib/index.js: /node_modules/реагирует-самозагрузка/Библиотека/utils/bootstrapUtils.js: /node_modules/react-tools/src/vendor/core/warning.js: Неожиданный токен ...

scripts.cjsx - это файл, содержащий компонент, который я пытаюсь проверить, - и файл, в котором я действительно требую «реакция-бутстрап»

И полный стек:

at Object.exports.runInContext (vm.js:43:16) 
     at JSDOMEnvironment.runSourceText (node_modules/jest-cli/src/environments/JSDOMEnvironment.js:40:10) 
     at Object.runContentWithLocalBindings (node_modules/jest-cli/src/lib/utils.js:378:17) 
     at Loader._execModule (node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:234:11) 
     at Loader.requireModule (node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:845:14) 
     at Loader.requireModuleOrMock (node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:875:19) 
     at Object.<anonymous> (node_modules/react-bootstrap/lib/utils/bootstrapUtils.js:19:16) 
     at Object.runContentWithLocalBindings (node_modules/jest-cli/src/lib/utils.js:397:17) 
     at Loader._execModule (node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:234:11) 
     at Loader.requireModule (node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:845:14) 
+1

Я не разрешил это. Мы перешли на использование webpack для создания тестовых файлов с использованием этого усовершенствованного модуля npm: https://www.npmjs.com/package/jestpack –

ответ

1

Я изменил JSDOMEnvironment.js из jest-cli, чтобы распечатать загружаемые модули. При выполнении требуется («предупреждение») в bootstrapUtil.js (вдоль, как в других частях моего кода), это то, что я видел:

******** D:\builds\gauntlet\main\cat\src\main\resources\node_modules\react-tools\src\vendor\core\warning.js 

(function(){return function(module, exports, require, __dirname, __filename, global, jest, ____JEST_COVERAGE_DATA____) {/** 
* Copyright 2014-2015, Facebook, Inc. 
* All rights reserved. 
* 
* This source code is licensed under the BSD-style license found in the 
* LICENSE file in the root directory of this source tree. An additional grant 
* of patent rights can be found in the PATENTS file in the same directory. 
* 
* @providesModule warning 
*/ 

"use strict"; 

var emptyFunction = require('emptyFunction'); 

/** 
* Similar to invariant but only logs a warning if the condition is not met. 
* This can be used to log issues in development environments in critical 
* paths. Removing the logging code for production environments will keep the 
* same logic and follow the same code paths. 
*/ 

var warning = emptyFunction; 

if (__DEV__) { 
    warning = function(condition, format, ...args) { 
    if (format === undefined) { 
     throw new Error(
     '`warning(condition, format, ...args)` requires a warning ' + 
     'message argument' 
    ); 
    } 

Здесь вы можете увидеть, где «...» исходит из , Это снимается с устаревших реактивов, которые сбрасываются реактивом. Это следует подбирать либо из пакета предупреждений. Я ищу решение для того, чтобы судить об этом пакете.

Извините, что я ответил «, я хотел бы прокомментировать, но у меня просто нет репутации.

0

Это связанно требуют устаревшего react-tools пакета - Недавно я получал очень похожее сообщение об ошибке и удаление этого полностью из моего node_modules фик его

Вот ошибку я видел:

SyntaxError: Unexpected token ... at eval (native) at JSDOMEnvironment.runSourceText

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