Jest: المصحح. ونقاط التوقف لا تعمل مع node --inspect

تم إنشاؤها على ٩ سبتمبر ٢٠١٦  ·  77تعليقات  ·  مصدر: facebook/jest

يمكن حاليًا تعيين نقاط التوقف للاستخدام مع node debug باستخدام الكلمة الأساسية debugger; ، ولكن يتم تجاهل أي نقاط توقف معيّنة باستخدام debugger; عند استخدام node --inspect . هذا ينطبق فقط على رمز الاختبار ؛ يتم تعيين نقاط التوقف باستخدام debugger; داخل Jest أو مكتبات node_module الأخرى.

قمت بإعداد مستودع اختبار لإثبات الاختلاف: https://github.com/snapwich/jest-inspect. يمكن اختبار كلتا الطريقتين عن طريق سحب الريبو وتشغيل ما يلي:

npm install

// works
node debug --debug-brk ./node_modules/.bin/jest -i

// doesn't honor "debugger;"
node --inspect --debug-brk ./node_modules/.bin/jest -i

أيضًا ، بعد التشغيل الأولي باستخدام node --inspect ، يمكن تطبيق نقاط التوقف على الكود في علامة التبويب "المصادر". سيتم تجاهل أي نقاط توقف موضوعة في كود الاختبار (مثل __tests__/jest.js في jest-inspect repo أعلاه) ، لكن نقاط التوقف الموضوعة في أي ملفات أخرى (Jest أو كود node_modules أخرى) ستعمل بشكل صحيح عند إعادة تشغيل المجموعة.

يتوفر node --inspect فقط في العقدة v6.3.0 + وأنا أعمل على OSX باستخدام العقدة v6.4.0 و npm v3.10.3

/ cc @ kentcdodds

Bug Help Wanted

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

يجب أن يعمل node --inspect --inspect-brk node_modules/bin/jest مع العقدة 8.4.0 خارج الصندوق. أنا سعيد جدًا لأن هذا نجح أخيرًا ، فقد كانت إحدى المشكلات الرئيسية التي جعلت من الصعب تصحيح اختبارات JavaScript.

ال 77 كومينتر

تواجه نفس المشكلة اليوم

أيضًا في المثال الخاص بك إذا قمت بتشغيل npm run debug

  6
  7     // break won't be triggered
> 8     debugger;
  9
 10     expect(test).toBe(true);
test
ReferenceError: test is not defined

هل أفعل شيئًا خاطئًا أم أنه ليس لديه إمكانية الوصول إلى السياق؟

maximderbin لست متأكدًا من سبب حصولك على هذا test يجب تحديده ببضعة أسطر فقط أعلاه: https://github.com/snapwich/jest-inspect/blob/master/__tests__/jest. شبيبة # L5

تحرير - تم اختباره للتو ، تحتاج إلى كتابة repl قبل كتابة test حتى يتم تشغيل الكود في السياق المناسب.

هذا مثير للاهتمام. هل من الممكن أن علامة --debug للعقدة لا تعمل عند استخدام الوحدة النمطية vm لإنشاء سياق؟

أي أخبار عن هذا؟

هل كان هذا يعمل من قبل؟

لا أعتقد أن vm.runInContext يدعم بروتوكول مصحح الأخطاء.

تشير هذه المقالة إلى إعادة توجيه المنفذ لدعم تصحيح أخطاء التعليمات البرمجية للجهاز الظاهري. لست متأكدًا مما إذا كان ذلك مناسبًا.

أبعد من ذلك ، ربما من الممكن استخدام مآخذ ويب داخل الجهاز الظاهري (لدعم بروتوكول مصحح الأخطاء)؟

ما رأيك ،cpojer؟

ربما من الممكن إجراء اختبارات بدون سياق vm في وضع التصحيح؟

هذه المشكلة هي أكبر سبب يمنعني من التبديل إلى Jest. أي تحديثات أو أفكار حول كيفية إحراز تقدم؟

أعتقد أننا بحاجة إلى إنشاء repro بدون Jest وإرسال مشكلة إلى bugtracker node.js.

تبدو مشكلة NodeJS هذه ذات صلة: https://github.com/nodejs/node/issues/7593.

حالة Repro ضئيلة:

var vm = require('vm');
new vm.Script('debugger;').runInContext(vm.createContext());
debugger;

ستتكسر ثلاث مرات مع node debug index.js ولكن مرتين فقط مع node --inspect --debug-brk index.js

cpojer هل تعتقد أنه من الجيد تغيير محتوى http://facebook.github.io/jest/docs/troubleshooting.html#tests -are-failing-and-you-don-t-know-why to تعكس أن هذا لم يعمل بعد؟ يسعدني تقديم PR لهذا الغرض إذا كان ذلك مفيدًا - ماذا يجب أن يقول القسم؟ احذفه؟ قل "قريبا"؟

(بالمناسبة أنا أحب Jest! إنه يجعل اختبار React أكثر روعة)

لقد قمت بإنشاء PR لتحديث المستندات على هذا: https://github.com/facebook/jest/pull/1998

يبدو أن node-inspector لم يعد يتم صيانته ولا يدعم العقدة 7. *. عندما أستخدم
العقدة --debug-brk --inspect ./node_modules/react-scripts/node_modules/.bin/jest -i
مع CRA والعقدة 7.1 ، يبدو أنه يتم تحميله بشكل صحيح في أدوات التطوير ، ثم يتم تعليقه مع "انتظار قطع اتصال المصحح" (على الرغم من أن التنفيذ مجاني)

مرحبا شباب ، أي تحديث في هذه القضية؟

منصة IntelliJ (IntelliJ IDEA ، WebStorm) ستدعم Jest في إصدار 2017.1 القادم (https://youtrack.jetbrains.com/issue/WEB-14979). ويتم استخدام مفتش v8 بشكل افتراضي. سيكون غريباً إذا كنت تستطيع الجري ، لكن لا يمكنك التصحيح.

لكنها ليست مشكلة دعابة - إنها مشكلة NodeJS. وهناك حل بسيط - إذا كنت تريد تصحيح أخطاء الاختبار الوحيد ، فلا داعي للقلق بشأن الحالة العالمية. لذلك ، قمت بتنفيذ بيئة اختبار خاصة لهذا الغرض:

  1. تثبيت الوحدة jest-environment-node-debug

    yarn add jest-environment-node-debug --dev
    

    أو باستخدام npm: npm install jest-environment-node-debug --save-dev

  2. تشغيل باستخدام العلم --env jest-environment-node-debug

يعمل التصحيح :)

(موضع الخط غير صحيح في بعض الأحيان في IntelliJ Platform NodeJS Debugger إذا كنت تستخدم معالج TypeScript و Babel الأولي معًا - إنها مشكلة غير ذات صلة وسيتم إصلاحها في 2017.1).

orta وأنا كنا نتحدث حرفيا عن هذا. إنه يعمل معه في vscode ، لذلك قد لا نحتاج إلى بيئة node-debug. أعتقد أن --debug-brk وبدء Jest بـ -i سيعمل.

أنا أقدر لك بناء بيئة التصحيح ، هذا هو بالضبط ما كنت سأفعله أيضًا.

يعدcpojer V8 Inspector أفضل بكثير من بروتوكول مصحح الأخطاء القديم v8 - نظرًا لأن منصة IntelliJ ستستخدم V8 بشكل افتراضي لـ NodeJS 7+. لذا ، بالنسبة لي ، فإن القدرة على تصحيح أخطاء المزاح باستخدام مفتش v8 أمر حيوي.

أعتقد أنه من المنطقي قصر هذا على:

  • يقوم Jest بتشغيل ملف اختبار واحد
  • إنه ليس في وضع المشاهدة

تتمثل إحدى مشكلات هذا في أنه يمكنك الحصول على المتغير العام بخلاف global الذي نمرره إلى ملف يتم تشغيله في سياق Jest. أرغب حقًا في معرفة كيف يمكن لفريق العقدة إصلاح الإصدار 8 ، ويبدو أن هذا الإصلاح طويل المدى :(

(بالنسبة للأشخاص المهتمين ، أستخدم VS Code مع هذا الإطلاق JSON)

 {
      "name": "Run Tests With Debugger (slower, use npm run watch for normal work)",
      "type": "node",
      "request": "launch",
      "port": 5858,
      "address": "localhost",
      "stopOnEntry": false,
      "runtimeExecutable": null,
      "runtimeArgs": [
        "--debug-brk",
        "./node_modules/.bin/jest",
        "-i"
      ],
      "cwd": "${workspaceRoot}"
    }

screen shot 2016-12-07 at 13 16 12

orta ، هل يمكنك مشاركة التكوين الخاص بك أيضًا؟ يظهر مصدري كل بابل مشوهة

كل شيء OSS - https://github.com/artsy/emission 🎉

الحل الذي قدمته لتشغيل وتصحيح اختبار Jest الفردي في IntelliJ Idea.

إصدار العقدة: v6.9.4

single jest runner

ثم مثل تشغيل أي اختبار وحدة. crtl / الأمر + shift + F10 / F9

debugger

benweizhu يرجى الاطلاع على https://github.com/develar/ij-rc-producer

لأي شخص يبحث عن توضيح ، تمكنت من الوصول إلى عبارات مصحح الأخطاء في الكود الخاص بي وملفات الاختبار في Node 7.4.0 و Jest 18.x واستخدام jest-environment-node-debug (من هذا التعليق ) مع أمر:

node --debug-brk --inspect ./node_modules/.bin/jest -i --env jest-environment-node-debug

trxcllnt حاول ذلك ، للأسف لا يعمل معي :(

سأذكر أيضًا https://github.com/nodejs/node/issues/6283 لكني أرى أن cpojer متورط بالفعل هناك :)

خرج Node.js 7.5.0 للتو وهو يعمل بالفعل على إصلاح بعض المشكلات ذات الصلة (تم إصلاح هذه المشكلة بالنسبة لي)

شكرًا للعمل حول trxcllnt ، بدون تصحيح أخطاء مفتش خرائط المصدر أمر مؤلم بشكل مدهش مع العقدة.

iammerrick @ trodrigues trxcllntsnapwich يرجى تجربة وحدة npm jest-environment-node-debug

لقد أجريت بعض التغييرات التي أصلحت تصحيح أخطاء العقدة لي باستخدام Node v7 و Jest 18.

أيضًا الطريقة التي استخدمها من خلال إضافة "testEnvironment": "jest-environment-node-debug" في تكوين Jest الخاص بي.

فقط لمعلوماتك لقد استخدمت أداة devtool لتصحيح الأخطاء

تحرير: آسف ، لقد كنت مبكرًا جدًا ، ما زلت أرى بعض المشكلات (أحاول إصلاحها)
EDIT2: لا يهمني كنت أحاول استخدام نفس البيئة لتشغيل اختباراتي محليًا والتي فشلت لأنها تحتاج إلى بيئة تصحيح أخطاء العقدة
EDIT3: شكرًا develar على الإذن بالنشر كوحدة أصلية

عندما أستخدم jest-environment-node-debug ، لا يبدو أن محاكاة مستند jsdom موجودة. هل هناك أي طريقة لتغيير ذلك؟

بين هذه المشكلة و https://github.com/facebook/jest/issues/2801 مما تسبب في ظهور تصحيح أخطاء printf-style-مقاوم للفشل عادةً بشكل غير مفهوم في بعض الحالات ، أجد أن التصحيح صعب للغاية.

AgentME ما الذي موجود ؟ هل تستطيع أن تعطيني مثالا.

NikhilVerma وثيقة المتغيرات العامة

test('foo', () => {
  document.body.textContent = '123';
});

AgentME أعتقد أن هذه نتيجة متوقعة لأن jest-environment-node-debug يعتمد على jest-environment-node بدلاً من jest-environment-jsdom ، البيئة الافتراضية التي توفر document وغيرها من الكواكب العالمية لمحاكاة بيئة المتصفح.

تجول في نفس الشيء مثلAgentME.

لمعلوماتك

مرحبا. شاهدت للتو إصدار العقدة الجديد https://nodejs.org/en/blog/release/v7.6.0/
لست متأكدًا من أن هذا الإصدار يحسن أي شيء لأنه يذكر تغييرات قليلة

lib: build node inspect into node (Anna Henningsen) #10187
inspector: add --inspect-brk (Josh Gavant) #11149

@ bsr203 لقد اختبرت للتو على العقدة v7.6.0 ونقاط التوقف وبيانات debugger; في الاختبارات لا تزال لا تعمل

DanielHoffmann @ bsr203AgentME هل يمكن إرضاء استنساخ https://github.com/NikhilVerma/jest-environment-node-debug-fixed وتشغيل npm run devtool واسمحوا لي أن أعرف إذا مشغلات توقف الخاص بك ويمكنك ان ترى وثيقة .body.textContent (لأنني أستطيع).

أنت بحاجة إلى NodeJS 7.5.0 أو أحدث

NikhilVerma لم يكن كذلك ، لكن document.body.textContent بها فاصل سطر واحد فقط
لا أعرف ما إذا كنت أستخدمه بشكل صحيح أم لا ، فقد قمت بتثبيت devtool عالميًا ثم قمت بتثبيت jest-environment-node-debug-fix من سجل npm كاعتماد على dev في مشروعي ثم قمت بتشغيل:

devtool ./node_modules/.bin/jest --colors --config=myConfig

تجري الاختبارات ، لكن نقاط التوقف لا تعمل. بخلاف node --inspect لا يمكنني حتى فتح ملفات الاختبار في مصحح الأخطاء

DanielHoffmann لقد فعلتها خطأ :)

git clone [email protected]:NikhilVerma/jest-environment-node-debug-fixed.git
cd jest-environment-node-debug-fixed
npm install
npm run devtool

المتطلبات الأساسية هي

  • العقدة v7.5.0 على الأقل
  • دعابة 17+
  • تم تثبيت Devtool
  • ركض Jest CLI مع خيار "-i"
  • حزمة jest-environment-node-debug (1.0 إذا كان لديك jest17 و 2.0 إذا كان لديك jest18)
  • اصنع نسخة من تهيئة jest وأضف "testEnvironment": "jest-environment-node-debug" واستخدم هذا التكوين لتشغيل الدعابة (حتى لا تنقطع اختباراتك العادية)

شكرا على الخطواتNikhilVerma. لم أجربها بنفسي بعد ، لكنني اعتقدت أنني سأذكر أنني آمل أن يكون هذا على رأس قائمة الأشياء التي يجب أن يعمل عليها فريق Jest. أتخيل أن مستخدمي Jest (بما في ذلك مستخدمي Facebook) سيحبون إلى حد كبير تجربة تصحيح أخطاء أفضل :) مع مدى سهولة كل شيء آخر مع Jest ، هذا صعب بشكل غير معهود (ويجب أن أقول ... مؤلم 🙀 😉).

حصلت على أداة develar تعمل مع node --inspect-brk ./node_modules/.bin/jest --runInBand --env jest-environment-node-debug .

ما زلت أحصل على ReferenceError: window is not defined حتى بعد استخدام jest-environment-node-debug-fixed . 😢

تحرير: ومع ذلك ، فقد عملت باستخدام bugger https://github.com/buggerjs/bugger

sugatmahanti هل حصلت على فرصة لتجربة الخطوات التي ذكرتها هنا؟ https://github.com/facebook/jest/issues/1652#issuecomment -281985580

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

باستخدام الأمر التالي:
$ node --inspect --debug-brk ./node_modules/.bin/jest --runInBand -i --env jest-environment-node-debug

أحصل على الأخطاء التالية:
ReferenceError: window is not defined
only one instance of babel-polyfill is allowed

يبدو أيضًا أن debugger قد تم تجاهله تمامًا بمجرد تشغيل $ node --inspect --debug-brk ./node_modules/.bin/jest --runInBand

العقدة 7.6.0
جيست 19.0.2
بابل جيست 19.0.0.0

هل ما زالت هذه القضية قيد العمل؟

يبدو أن الدعابة يجب أن تدعم أوامر node v6 + --inspect و --inspect-brk. نأمل أن يأتي هذا قريبًا من باب الدعابة حيث يبدو أن العديد من الأشخاص يكافحون لتصحيح أخطاء اختبارات الوحدة الخاصة بهم (أنا من بينهم).

هذه ليست قضية الدعابة. هذا خطأ في v8 / node ، راجع https://github.com/nodejs/node/issues/7593 - يرجى التعبير عن مخاوفك هناك واطلب من فرق العقدة أو v8 إصلاح هذا في vm / Contextify.

سأغلق هذه المسألة لأنها غير قابلة للتنفيذ من جانبنا. تم توثيق بعض الحلول أعلاه ، والتي قد تعمل أو لا تناسبك. بمجرد إصلاح ذلك في العقدة / v8 ، سيبدأ العمل تلقائيًا في النهاية.

بعد تثبيت jest-environment-node-debug ، تمكنت من إنتاج تكوين عامل launch.json لـ vscode ، باستخدام بروتوكول المفتش مع العقدة 8.

إذا كان أي شخص مهتمًا ، فهذا هو الحد الأدنى من التكوين المطلوب (بافتراض أن المنفذ والعنوان قياسيان):

{
  "name": "Debug Jest",
  "type": "node",
  "request": "launch",
  "runtimeArgs": [
    "--inspect-brk",
    "./node_modules/.bin/jest",
    "-i",
    "--env",
    "jest-environment-node-debug"
  ],
  "cwd": "${workspaceRoot}",
  "protocol": "inspector",
  "console": "integratedTerminal"
}

على النوافذ

        {
            "name": "Debug Jest",
            "type": "node",
            "request": "launch",
            "runtimeArgs": [
                "--inspect-brk",
                "./node_modules/jest/bin/jest.js",
                "-i",
                "--env",
                "jest-environment-node-debug"
            ],
            "cwd": "${workspaceRoot}",
            "protocol": "inspector",
            "console": "integratedTerminal",
            "sourceMaps": true
        }

لمعلوماتك ، يجب حل هذه المشكلة اعتبارًا من Node 8.4.0 (https://github.com/nodejs/node/pull/14465).

هذا رائع. أخيرا! :)

شكرا لجميع الذين حصلوا على هذا للعمل 👏

فهل هناك أي شيء على وجه الخصوص يجب القيام به بخلاف تثبيت أحدث عقدة v8.4.0؟ هل يمكن لشخص ما نشر vscode launch.json لهذا ؟

يعمل تكوين تشغيل vscode هذا بالنسبة لي :)

    {
      "name": "Debug Jest tests",
      "type": "node",
      "request": "launch",
      "runtimeArgs": [
        "--inspect",
        "./node_modules/.bin/jest",
        "-i"
      ],
      "cwd": "${workspaceRoot}",
      "protocol": "inspector",
      "console": "integratedTerminal"
    }

تحتاج فقط إلى تشغيله "بالطريقة الجديدة". أي مع inspect أو --inspect أو --inspect-brk . راجع https://nodejs.org/en/docs/inspector/ للحصول على مزيد من المعلومات حول الطرق المختلفة لتشغيله والأشياء التي يمكن الاتصال بها.

المذكور أعلاه jest-environment-node-debug غير ضروري.

يجب أن يعمل node --inspect --inspect-brk node_modules/bin/jest مع العقدة 8.4.0 خارج الصندوق. أنا سعيد جدًا لأن هذا نجح أخيرًا ، فقد كانت إحدى المشكلات الرئيسية التي جعلت من الصعب تصحيح اختبارات JavaScript.

لأولئك الذين يستخدمون create-react-app / react-scripts :

./node_modules/.bin/react-scripts --inspect-brk test --env=jsdom --runInBand

تأكد من أنك على react-scripts@^1.011 !

نقاط التوقف لا تصيبني.

  • نظام التشغيل Windows 10
  • العقدة 8.4
  • كود VSCode 1.15.1
  • دعابة 20

انظر إلى مثال المشروع هنا:
https://github.com/sparebytes/jest-debug-example

هذا هو تكوين الإطلاق:

{
    "name": "Debug Jest tests",
    "type": "node",
    "request": "launch",
    "sourceMaps": true,
    "runtimeArgs": [
        "--inspect-brk",
        "--nolazy",
        "./node_modules/jest/bin/jest.js",
        "-i"
    ],
    "cwd": "${workspaceRoot}",
    "protocol": "inspector",
    "console": "integratedTerminal"
}

sparebytes في وحدة التحكم الخاصة بك ، تحقق من العقدة الخاصة بك - الإصدار ، وتأكد من أنها 8.4. عملت تهيئة الإطلاق التالية بالنسبة لي بنفس المواصفات الخاصة بك:

  {
    "name": "Debug Jest tests",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}\\node_modules\\jest\\bin\\jest.js",
    "args": [
      "--runInBand",
      "--no-cache"
    ],
    "runtimeArgs": [
      "--inspect-brk"
    ],
    "cwd": "${workspaceRoot}",
    "protocol": "inspector",
    "console": "integratedTerminal"
  }

ما زلت لا تعمل معي في 8.4.0 وقد جربت كل شيء.

يبدو أن نقاط الفاصل تصبح حمراء (يتم تفعيلها) بعد انتهاء الاختبارات .. أي أفكار؟

+1
انها لا تعمل بالنسبة لي أيضا

yevhenchmykhunep هل

./node_modules/.bin/react-scripts --inspect-brk test --env=jsdom --runInBand

بواسطة Timer

أواجه مشكلة في العقدة v10.5.0 و [email protected] node --inspect --inspect-brk ./node_modules/jest/bin/jest.js

يعمل الفاصل في السطر الأول ، لكن مكالمات debugger لا تتوقف :(

يبدو أنها ليست مشكلة الدعابة ، ولكن مشكلة nodejs. لدي نفس المشكلة مع تصحيح التطبيق الخاص بي أيضًا. أنا أستخدم العقدة v8.11.3

يمكنني الحصول على مصحح الأخطاء لنشر وضرب خطوط مصحح الأخطاء في العقدة 8.

"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand -t",

و

nvm exec 8 yarn test:debug

ومع ذلك ، لن يتسبب سطر مصحح الأخطاء هذا في حدوث توقف:

describe.skip('With Enzyme', () => {
  it('ArticleSidebar component displays', () => {
    debugger;

هذا الخط سوف:

// this code is in not in tests
import { config } from './nextConfig';
let log, logError;
debugger; 

لذا يبدو أن المغزى من القصة بالنسبة لي هو: لا تتوقع إصابة فواصل مصحح الأخطاء إذا كانت في كود اختبار Jest. لماذا ا؟ ربما يريد شخص أذكى مني معرفة ذلك 😸

بالنسبة لأولئك الذين ما زالوا عالقين في هذه المشكلة ، يعمل التصحيح في Chrome DevTools مع بيان مصحح الأخطاء. ليس حلاً مثاليًا ، ولكنه حل لائق:

لتصحيح الأخطاء في Google Chrome (أو أي متصفح يستند إلى Chromium) ، ما عليك سوى فتح المتصفح والانتقال إلى chrome: // inspect والنقر على "Open Dedicated DevTools for Node" ، والذي سيمنحك قائمة بمثيلات العقد المتاحة التي يمكنك توصيلها إلى. ما عليك سوى النقر فوق العنوان المعروض في المحطة (عادةً ما يكون شيئًا مثل localhost: 9229) بعد تشغيل الأمر أعلاه ، وستتمكن من تصحيح Jest باستخدام DevTools من Chrome.

سيتم عرض Chrome Developer Tools ، وسيتم تعيين نقطة توقف في السطر الأول من نص Jest CLI النصي (يتم ذلك ببساطة لمنحك الوقت لفتح أدوات المطور ولمنع Jest من التنفيذ قبل أن يكون لديك الوقت للقيام بذلك ). انقر فوق الزر الذي يشبه زر "تشغيل" في الجانب الأيمن العلوي من الشاشة لمتابعة التنفيذ. عندما ينفذ Jest الاختبار الذي يحتوي على عبارة مصحح الأخطاء ، سيتوقف التنفيذ مؤقتًا ويمكنك فحص النطاق الحالي ومكدس الاستدعاءات.

المصدر: https://jestjs.io/docs/en/troubleshooting#tests -are-failing-and-you-don-t-know-why

jchani حتى مع هذه الطريقة ، لن تنكسر عبارات التصحيح داخل الاختبارات. كما أشار jcollum . حتى مع فاصل عند السطر الأول ممكّن. نقاط الاستراحة داخل الاختبارات هي النوع الذي نريده جميعًا أكثر من أي نوع آخر. تصحيح أخطاء سبب توقف الاختبار عن العمل هو بيتا بدون هذه القدرة.

https://github.com/vuematerial/vue-material/pull/1840 @ Samuell1 لماذا تريد التمسك بـ jest 22 عندما يكون لدينا 4 اختبارات تفشل في dev ... يجب عدم السماح بأي التزام مع فشل الاختبارات.

لمستخدمي Vue: إذا كانت عبارات مصحح الأخطاء لا تعمل ... حاول نقلها إلى المكون الخاص بك بدلاً من رمز الدعابة ، فافعل أقل قدر ممكن من الدعابة وتحقق فقط من حالة التركيبات الخاصة بك ... على الأقل حتى nodejs فريق يعمل على إصلاح هذه المشكلة.

مكالماتي debugger بـ input-speed.vue . أدرك أن هذا ليس مثاليًا ، لكنه يتفوق على عدم وجود تصحيح أو ترك الاختبارات لأنه من الصعب جدًا بناؤها.

import Vue from 'vue'
import { mount } from 'avoriaz'
import f1 from '../fixtures/input-speed.vue'

test('should work with phones autocorrect', async () => {
  const wrapper = await mount(f1, {})
  const vm = wrapper.vm

  await wrapper.vm.$nextTick()

  // should work with android autocorrect without waiting
  expect(vm.form.server).toBe('autocorrect')
  expect(vm.noBind).toBe('Not data binded')  // Should work without data binding
})

إضافة هذا لأي شخص لديه هذه المشكلة أثناء استخدام الخيار --watch - يتم تجاهل كشوفات الحساب debugger مع --watch ، إلا أن إضافة --no-cache يصلح المشكلة. أستطيع أن أؤكد أن ما يلي يعمل باستمرار على العقدة 10.8.0 :

node --inspect-brk node_modules/.bin/jest --runInBand --no-cache --watch

للعقدة 6.x ، بدلاً من node --inspect-brk ، جرب node inspect (ملاحظة ، عدم وجود الواصلات)

nvm

ساعدني هذا الامتداد: https://chrome.google.com/webstore/detail/nodejs-v8-inspector-manag/gnhhdgbaldcilmgcpfddgdbkhjohddkj/related؟hl=ar

يكتشف node --inspect ويفتح devTools في Chrome لمقبس الويب هذا. debugger التصريحات ونقاط التوقف تعيين يدويا على devtools عملت!

إنه أمر مضحك ، يبدو أن حظي أفضل هنا إذا قمت بإيقاف تشغيل Node Inspector Manager واستخدمت chrome://inspect بدلاً من ذلك.

jcollum بصفتي مطور NiM ... أي شيء ، على وجه الخصوص ، يجب أن أكون على علم به؟

آسف ، ليس لدي أي شيء محدد هنا. أحيانًا يكون الوصول إلى نقطة توقف في ملف موجود خلف خريطة المصدر أمر غير مستقر. في المرة القادمة التي أحتاج فيها إلى تصحيح اختبار الدعابة ، سأعطي NIM فرصة أخرى.

أردت الإبلاغ بأننا واجهنا نفس المشكلة كما ذكرها @ brien-givens

كما قال أن إضافة --no-cache يحل المشكلة بالنسبة لنا (التفاصيل انظر هنا: https://github.com/facebook/jest/issues/1652#issuecomment-412692363)

@ brien-givens شكرًا لمشاركة الحل الخاص بك :-)

بالنسبة لي ، كانت المشكلة مع ملفي * .test.js يحملان الاسم نفسه (موجودان في مجلدات مختلفة). عندما أزلت أحدهما ، أصيب المصحح في الآخر دون مشاكل.
ترتيب:
"name": "Debug Jest Test", "type": "node", "request": "launch", "program": "${workspaceRoot}/node_modules/jest/bin/jest", "args": [ "${fileBasenameNoExtension}", ], "console": "integratedTerminal"

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