Jest: لا يعمل استيراد اختبار اللقطة مع الإعداد المسبق لـ babel

تم إنشاؤها على ١٥ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: facebook/jest

أحاول اختبار لقطة بسيطة. يستخدم المكون الذي أختبره مكونًا آخر من وحدة نمطية. فشل الاختبار عند محاولة استيراد هذه الوحدة غير المزعجة باستخدام:

بالفشل

Using Jest CLI v14.1.0, jasmine2, babel-jest, jest-react-native preset
 FAIL  js/app/SetupView/__tests__/SetupView-test.js (0s)
 Runtime Error
  - SyntaxError: Unexpected reserved word
        at transformAndBuildScript (../../../../../usr/local/lib/node_modules/jest-cli/node_modules/jest-runtime/build/transform.js:306:10)
        at Object.<anonymous> (js/app/SetupView/index.js:12:17)
        at Object.<anonymous> (js/app/SetupView/__tests__/SetupView-test.js:11:12)
1 test suite failed, 0 tests passed (0 total in 1 test suite, run time 2.419s)

اختبار

'use strict';
import 'react-native';
import React from 'react';

import SetupView from '../index';

import renderer from 'react-test-renderer';

describe('SetupView', ()=> {
  it('renders correctly', ()=>{
    const tree = renderer.create(
      <SetupView/>
    ).toJSON();
    expect(tree).toMatchSnapshot();
  })
});

SetupView المكون

'use strict';

import React from 'react';
import {
  View,
  Text,
  TouchableHighlight,
  Image,
  Animated,
} from 'react-native';

import DataContainer from 'react.datacontainer'; //<---fails here
import DashboardSettings from './DashboardSettings';
.
.
.

package.json

"jest": {
    "globals": {
      "__DEV__": true
    },
    "collectCoverage": false,
    "verbose": true,
    "preset": "jest-react-native",
    "modulePathIgnorePatterns": [
      "node_modules/react-native/node_modules/yeoman-generator",
      "node_modules/react-native/node_modules/fbjs"
    ],
    "unmockedModulePathPatterns": [
      "react.datacontainer",
      "react.data",
      "react.base.theme",
      "react.layout"
    ]
  }

لمعلوماتك ، لدي ملف .babelrc في الدليل الجذر الخاص بي يشير إلى الإعداد المسبق للتفاعل الأصلي ويتم تشغيل الاختبار ولكنه يفشل إذا قمت بالتعليق على السطر 12 نظرًا لأن DataContainer غير محدد.

التعليق الأكثر فائدة

هل يمكنك تجربة jest --no-cache ؟ إذا قمت بتغيير babelrc قبل الاستدعاء الأخير ، فقد لا نقوم بتحديث ذاكرة التخزين المؤقت بشكل صحيح.

إذا لم يفلح ذلك ، فيرجى إنشاء repo على github يمكنني تثبيت npm واختبار npm لاستكشاف الأخطاء وإصلاحها.

نصيحة: لا تحتاج إلى unmockedModulePathPatterns عند استخدام الإعداد المسبق للتفاعل الأصلي لأن التخزين التلقائي سيتم تعطيله على أي حال.

ال 3 كومينتر

هل يمكنك تجربة jest --no-cache ؟ إذا قمت بتغيير babelrc قبل الاستدعاء الأخير ، فقد لا نقوم بتحديث ذاكرة التخزين المؤقت بشكل صحيح.

إذا لم يفلح ذلك ، فيرجى إنشاء repo على github يمكنني تثبيت npm واختبار npm لاستكشاف الأخطاء وإصلاحها.

نصيحة: لا تحتاج إلى unmockedModulePathPatterns عند استخدام الإعداد المسبق للتفاعل الأصلي لأن التخزين التلقائي سيتم تعطيله على أي حال.

هذا لم ينجح بالنسبة لي. يبدو أن المشكلة تتعلق باستيراد node_module react.datacontainer . بعد البحث في المزيد ، أعتقد أن الإعداد المسبق الدعائي لا يقوم بتجميع وحدات node_modules المكتوبة في es6.

لسوء الحظ ، لا يمكنني إنشاء الريبو في الوقت الحالي. ولكن إذا كان يساعد بشكل أكبر ، فإليك ما تبدو عليه الوحدة النمطية "response.datacontainer". https://github.com/ForceDotComLabs/react.force.datacontainer

يمكنك تمكين المعالجة المسبقة لهذه الوحدة عبر خيار التكوين هذا: http://facebook.github.io/jest/docs/tutorial-react-native.html#preprocessorignorepatterns -customization

إذا كنت ترغب في ذلك ، يمكنك أيضًا إنشاء مشكلة على صفحة github لهذا المشروع لمطالبتهم بترجمة تبعياتهم مسبقًا ونشر ملفات الإنشاء على npm.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات