ভিজুয়াল স্টুডিও কোড ব্যবহার করে মোচা ব্রেকপয়েন্টগুলি


103

ভিজুয়াল স্টুডিও কোড ব্যবহার করে মোছা পরীক্ষাগুলিগুলির সাথে ব্রেকপয়েন্টগুলি যুক্ত করা কি সম্ভব?

সাধারণত ডিবাগিং কোড করার সময় জাভাস্ক্রিপ্ট ফাইলটি কার্যকর করতে প্রোগ্রামের বৈশিষ্ট্যটি সেট করে, প্রবর্তন.জসন কনফিগার করতে হবে। যদিও মোচার পক্ষে এটি করা যায় তা আমি নিশ্চিত নই।

উত্তর:


84

আপনি কি জানেন যে আপনি কেবল আপনার প্রবর্তন কনফিগারেশনে গিয়েছেন, আপনার কার্সারটি অন্য কনফিগারগুলির পরে বা এর মধ্যে রেখেছেন ctrl- spaceএকটি বর্তমান, বৈধ মোচা কনফিগার স্বয়ংক্রিয়ভাবে উত্পন্ন করার জন্য?

যা আমার জন্য পুরোপুরি সূক্ষ্ম কাজ করে। ব্রেকপয়েন্টে থামানো সহ। (আমারও পূর্ববর্তী, এখন পুরানো একটি ছিল যা বিভিন্ন সেটিং-সম্পর্কিত কারণে আর হয়নি did)

এখানে চিত্র বর্ণনা লিখুন

ভিএসকোড 1.21.1 (মার্চ 2018) হিসাবে এই ফলন:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Mocha (Test single file)",
      "type": "node",
      "request": "launch",
      "runtimeArgs": [
        "${workspaceRoot}/node_modules/.bin/mocha",
        "--inspect-brk",
        "${relativeFile}",
      ],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "port": 9229
    }
}

পার্শ্ব-নোটে: debug-brk অপসারণ করা হয়েছে (নোড> = সংস্করণ 8 সহ যে কোনও ব্যক্তির পক্ষে)।


4
দস্তাবেজটি আরম্ভ করার জন্য এবং হট মডিউল প্রতিস্থাপনটি অক্ষম করার জন্য আমার কাছে কিছু কাস্টম কোড ছিল। এই যুক্তিকে "args"ব্লকে পাস করুন :"--require", "${workspaceFolder}/tools/testSetup.js",
ক্যান্ট বুল

4
ভিএস কোড 1.29.1: স্বয়ংক্রিয়রিত Ctrl+Spaceমোচা টেস্ট কনফিগারেশনটি নেই debug-brk। তবুও ব্রেকপয়েন্টগুলির সাথে ডিবাগিং ঠিক কাজ করেছিল।
অ্যান্টনি

@ অ্যান্টনি হ্যাঁ, দীর্ঘকাল ধরে debug-brkএটি আর ব্যবহার, সমর্থিত বা স্বয়ংক্রিয়ভাবে neededোকানো দরকার নেই। আমার পার্শ্ব-নোটটি কেবল এটি পরিষ্কার করেছে, যেমন একাধিক অন্যান্য উত্তর উল্লেখ করেছে।
ফ্র্যাঙ্ক নোক

4
ctrl + spaceকাজ করার জন্য আমার (একমাত্র) অন্যান্য কনফিগারেশনের ডান ধনুকের পরে কমা maোকাতে হয়েছিল ।
0

4
মোচার জন্য সঠিক কনফিগারেশনের একটি সর্বশেষতম
নক্স

70

আপনি যদি --debug-brk+ যুক্ত করতে বা আপনার বিশ্বব্যাপী মোচা ইনস্টলেশন (যা আপনার লঞ্চ.জসনকে সংস্করণ নিয়ন্ত্রণে রাখে এবং বিভিন্ন মেশিনে একাধিক বিকাশকারী থাকে তবে ব্রেক হয়ে যাবে) ব্যবহার করতে না চাইলে দেব নির্ভরতা হিসাবে মোচা ইনস্টল করুন এবং এটি আপনার প্রবর্তন.জসনে যুক্ত করুন:

{
  "name": "mocha",
  "type": "node",
  "request": "launch",
  "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
  "stopOnEntry": false,
  "args": ["--no-timeouts", "--colors"], //you can specify paths to specific tests here
  "cwd": "${workspaceRoot}",
  "runtimeExecutable": null,
  "env": {
    "NODE_ENV": "testing"
  }
}

কেবলমাত্র F5 টিপে আপনার পরীক্ষায় সম্পূর্ণ ডিবাগিং সমর্থন।

--no-timeoutsআপনার ব্রেক্সিট পয়েন্ট বন্ধ হয়ে যাওয়ার কারণে আপনার পরীক্ষা শেষ না হওয়ার বিষয়টি --colorsনিশ্চিত করে এবং ভিএস কোড রঙগুলিকে সমর্থন করে তা সনাক্ত না করে যদিও মোচা রঙগুলি আউটপুট দেয় তা নিশ্চিত করে।


12
অন্য কারও জন্য সমস্যা হচ্ছে। _মোচা নোট করুন মোচা নয়। কেবল মোচা দিয়ে এটি ভিএস কোডে পরীক্ষা চালাবে তবে ব্রেকপয়েন্টগুলি আঘাত
হারাবে

4
যারা টাইপস্ক্রিপ্ট ব্যবহার করেন তাদের পক্ষে, আপনি যতক্ষণ সেট করবেন ততক্ষণ এটি একটি উপযুক্ত উত্তর sourceMaps: true। ধন্যবাদ এক বিলিয়ন!
ব্রায়ান রায়নার

আপনার এনপিএম সামঞ্জস্যপূর্ণ কাস্টম পরীক্ষার প্যারামগুলি যুক্ত করতে এনভির npm_config_myparamব্লকের মতো কিছু যুক্ত করুন । সিএলআই-এ কোথায় রয়েছে, দেখতে এটি দেখতে বেশ ভাল লাগবে npm --myparam=myvalue test
বিভিজে

44

আর একটি উপায় হ'ল --debug-brkমোচা কমান্ড লাইন বিকল্প এবং Attachভিজ্যুয়াল স্টুডিও কোড ডিবাগারের ডিফল্ট লঞ্চ সেটিংস ব্যবহার করা।


আরও গভীর ব্যাখ্যা (অ্যান্ড্রে থেকে) প্রস্তাবিত

এটা করতে:

এই কমান্ডটি ব্যবহার করে কমান্ড লাইন থেকে মোচা চালান:

mocha --debug-brk

এখন ভিএস কোডে ডিবাগ আইকনে ক্লিক করুন, তারপরে Attachস্টার্ট বোতামের পাশের বিকল্প থেকে নির্বাচন করুন । ভিএস কোডে ব্রেকপয়েন্ট যুক্ত করুন এবং তারপরে শুরু ক্লিক করুন।



"request": "attach"এটি উপস্থিত না থাকলে আপনাকে অবশ্যই প্রবর্তন.জসনে যুক্ত করতে হবে - অন্যথায় এটি অভিযোগ করবে যে আপনাকে অবশ্যই কোনও প্রোগ্রাম বা অন্য কোনও ত্রুটি নির্দিষ্ট করতে হবে।
জোকুল

এটি VS Codeনির্দিষ্ট বলে মনে হচ্ছে । সাধারণ ভিএস 2015 এ কাজ করে না
পাভেল পি

দুর্দান্ত পরামর্শ ধন্যবাদ :)
গৌরব রাওয়াত

4
মনে রাখবেন, যে --debug-brkহয় আজকাল অবচিত , কেন যে আমি আপনাকে পরামর্শ দিচ্ছি স্বয়ংক্রিয় তৈরি vscode একটি তাজা ডিবাগ কনফিগ , হ্যাঁ, alslo বিশেষভাবে একজাতীয় উৎকৃষ্ট কফি জন্য।
ফ্র্যাঙ্ক নোক্ক

24

আমি ওএস এক্স 10.10 এ ভিএসকোডে এই কাজটি করেছি। এটির সাথে আপনার ./settings/launch.jsonফাইলটি প্রতিস্থাপন করুন ।

{
    "version": "0.1.0",
    "configurations": [
        {
            "name": "Run app.js",
            "type": "node",
            "program": "app.js", // Assuming this is your main app file.
            "stopOnEntry": false,
            "args": [],
            "cwd": ".",
            "runtimeExecutable": null,
            "env": { "NODE_ENV": "production"}
        },
        {
            "name": "Run mocha",
            "type": "node",
            "program": "/Users/myname/myfolder/node_modules/mocha/bin/_mocha",
            "stopOnEntry": false,
            "args": ["test/unit.js"],
            "cwd": ".",
            "runtimeExecutable": null,
            "env": { "NODE_ENV": "production"}
        }
    ]
}

এটি এখানে একটি টুকরো হিসাবে উপলব্ধ ।

আপনার যে মূল মানগুলি পরিবর্তন করতে programহবে তা _mochaহ'ল args, যা সম্পাদনযোগ্য হিসাবে সেট করা উচিত এবং যা আপনার পরীক্ষার ফাইলগুলির একটি অ্যারে হওয়া উচিত।


আমার জন্য (উইন্ডোতে) কাজ করে না
ওল্ফগ্যাং ক্লুজ

হ্যাঁ. দুঃখিত OpenDebug process has terminated unexpectedly
ওল্ফগ্যাং ক্লুজে

আপনি নোড ইনস্টল "runtimeExecutable"করা "C:/Program Files/nodejs/node.exe"বা যেখানেই সেট করার চেষ্টা করতে পারেন ?
জিপিএক্স

অবশ্যই - তবে কোনও পরিবর্তন নেই।
ওল্ফগ্যাং ক্লুজ

আমি উইন্ডোজ ব্যবহার করি না, তাই আমি আর কোনও সাহায্য করতে পারি না। যাইহোক, তার ওপর নজর রাখুন এই - তারা এই OpenDebug সমস্যা সম্পর্কে কথা বলছি।
জিপিএক্স

12
  1. Debug > Add Configuration...মেনুতে যান
  2. Node.jsপরিবেশ নির্বাচন করুন
  3. Mocha Testsপ্রদর্শিত ড্রপ-ডাউন তালিকা থেকে বিকল্পটি নির্বাচন করুন
  4. argsসম্পত্তির শেষ আইটেম হিসাবে আপনার পরীক্ষার ফাইলের পথটি টাইপ করুন
  5. যুক্ত কর একটি breakpoint
  6. Debugআইকনে ক্লিক করুন
  7. Mocha Testsএকটি কনফিগারেশন হিসাবে নির্বাচন করুন
  8. প্রেস Start debuggingবাটন
  9. :-)

11

ম্যাক ওএস এক্সে ভিএস কোডে (1.8.2) কাজ করার উপায়টি হ'ল:

{
    "name": "Mocha",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
    "stopOnEntry": false,
    "args": ["--recursive"], //you can specify paths to specific tests here
    "cwd": "${workspaceRoot}",
    "runtimeExecutable": null,
    "env": {
        "NODE_ENV": "testing"
    }
}

মোচা এনপিএম মডিউল ডিরেক্টরিতে ইনস্টল করা প্রয়োজন।


এটি আমাকে যুগ যুগ ধরে আটকে রেখেছিল। আমি নোড_মডিউলগুলির পরিবর্তে "যা মোচা" থেকে পথটি ভুলভাবে ব্যবহার করেছি। ধন্যবাদ!
PMac

6

আমি এই যা আমি হিসেবে শ্রেণীভুক্ত করতে একটি উপায় মূর্ত আউট করেছি কার্যসংক্রান্ত । আমি আশা করি ভিজ্যুয়াল স্টুডিও কোড দলটি এর জন্য আরও সুনির্দিষ্ট সমাধান সরবরাহ করবে তবে ইতিমধ্যে আমি যা করেছি তা এই:

  1. আমি এমন একটি ./settings/mocha.jsফাইল তৈরি করেছি যা চালাবার জন্য ফাইলগুলির তালিকা হিসাবে মোচা প্রগ্রেমেটিক্যালি আর্গুমেন্টগুলি চালায়। আপনি এখানে সম্পূর্ণ ফাইল দেখতে পারেন ;
  2. আমি একটি লঞ্চ কনফিগার তৈরি করেছি যা এটি ./settings/mocha.jsহিসাবে চালিত হবে programএবং আমাদের আর্গুমেন্ট হিসাবে পরীক্ষা করার জন্য প্রয়োজনীয় ফাইল / ফাইলের ধরণগুলি পাস করবে:

    {
        "name": "Unit tests",
        "type": "node",
        "program": ".settings/mocha.js",
        "stopOnEntry": true,
        "args": ["test/unit/*.js", "test/unit/**/*.js"],
        "cwd": ".",
        "runtimeExecutable": null,
        "env": { }
    }
    

    সম্পূর্ণ প্রবর্তন.জসন উদাহরণ

সুতরাং এটি করার সমতুল্য mocha test/unit/*.js test/unit/**/*.jsএবং এখন আমরা আমাদের মোচা পরীক্ষায় ব্রেকপয়েন্টগুলি ব্যবহার করতে পারি।


আমার পক্ষে কাজ করে না, এটি পরীক্ষার ফাইলগুলি খুঁজে পায় না, পাথগুলি সঠিক রয়েছে আমিও পুরো পথ দিয়ে চেষ্টা করেছি।
সিমোন গিয়ানী

4
এটি আমার জন্য খুব vscode 0.10.6 কাজ করে। .Ts ফাইলগুলিতে ব্রেকপয়েন্ট সহ, সোর্সম্যাপ সহ, আমি 'sourceMaps': true, 'outDir': './build'আমার লঞ্চ কনফিগারেশনে যুক্ত করেছি।
পাইরহো

4

আপনি যদি আরগস তালিকার শেষে $ {ফাইল} ভেরিয়েবল যুক্ত করেন তবে আপনি যে ফাইলটি খোলেন সেখান থেকে সরাসরি ডিবাগিং শুরু করতে পারেন:

        {
            "type": "node",
            "request": "launch",
            "name": "Mocha Tests",
            "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
            "args": [
                "-u",
                "tdd",
                "--timeout",
                "999999",
                "--colors",
                "${file}"
            ],
            "internalConsoleOptions": "openOnSessionStart"
        }

2

আর একটি উত্তর যুক্ত করার জন্য দুঃখিত, তবে পূর্বের কোনওটিই আমার পক্ষে ভিএস কোড ১.৮.১ এবং স্ট্যান্ডার্ড নোড ডিবাগার হিসাবে অন্তর্ভুক্ত ছিল না। এখানে আমি যেভাবে সমাধান করেছি তা এখানে (পূর্ববর্তী উত্তরগুলি থেকে এখানে এবং সরকারী ভিএস কোড নোড.জেস ডিবাগিং ডক্সের দিকনির্দেশের সাহায্যে ) তাই এখানে ক্লিক / কিপ্রেস ডিবাগিং রয়েছে:

  • নিশ্চিত করুন মোচা devDependencyইন হিসাবে ইনস্টল করা আছে packages.json:"devDependencies": { "mocha": "^3.2", ... }
  • আপনি এখন মোচা ইনস্টল করেছেন তা নিশ্চিত করতে npm installআপনার ডিরেক্টরিতে চালানpackage.jsonnode_modules/
  • খুলুন .vscode/launch.json(বা ভিএস কোডে, এফ 1 টিপুন, "আরম্ভ" টাইপ শুরু করুন এবং "ডিবাগ: ওপেন লঞ্চ.জসন" নির্বাচন করুন)
  • নীচের ডানদিকে নীল "কনফিগারেশন যুক্ত করুন" বোতামটি ক্লিক করুন (বা আপনার অন্যদের মধ্যে কেবল অনুলিপি করুন এবং পেস্ট করুন); এই পদক্ষেপটি alচ্ছিক ... মানে, আপনি একটি বিদ্যমান কনফিগারেশন পুনরায় ব্যবহার করতে পারেন। তবে আমি এটি কম বিভ্রান্তিকর রাখতে একটি যুক্ত করার পরামর্শ দিচ্ছি।
  • আপনার মধ্যে নিম্নলিখিতগুলি পরিবর্তন করুন launch.json, তারপরে ভিএস কোডে ডিবাগ উইন্ডোতে নতুন কনফিগার নামটি চয়ন করুন এবং আপনার নোড + মোচা পরীক্ষার ডিবাগিং শুরু করতে সবুজ তীরটি ক্লিক করুন!

নতুন কনফিগার ইন ইন launch.json:

"configurations": [{
    "name": "whatever name you want to show in the VS Code debug list",
    "type": "node",
    "cwd": "${workspaceRoot}",
    "program": "${workspaceRoot}/node_modules/mocha/bin/mocha",
    "args": ["--debug-brk=5858", "--no-timeouts", "--colors", "test/**/*.js"],
    "address": "localhost",
    "port": 5858,
    // the other default properties that are created for you are fine as-is
}, ...]

এটি ধরে নিয়েছে যে প্যাটার্নটি test/**/*.jsযেখানে আপনি নিজের পরীক্ষাগুলি রেখেছেন সেখানে কাজ করবে। উপযুক্ত হিসাবে পরিবর্তন করুন।

বন্দরটি যতক্ষণ না আপনি এটি মিলিয়ে যাওয়ার জন্য argsএবং portবৈশিষ্ট্য দুটিতে পরিবর্তন করেন ততক্ষণ নির্দ্বিধায় অনুভব করুন ।

আমার পক্ষে মূল পার্থক্যগুলি নিশ্চিত করছিল যে মোচা ছিল node_modules, programএক্সিকিউটেবলের দিকে ইঙ্গিত করার জন্য এবং নির্দিষ্ট argsপোর্টটিতে debug-brk=xনির্দেশিত প্রয়োজন port। উপরের বাকীগুলি কেবল জিনিসগুলি সুন্দর এবং সহজ করে তুলেছে।

আপনি যদি .vscode/launch.jsonসংগ্রহস্থল রাখেন বা না রাখেন এটি আপনার এবং আপনার দলের উপর নির্ভর করে। এটি একটি আইডিই-কেবল ফাইল, তবে আপনার পুরো দলটি এটি ব্যবহার করতে পারে, কোনও সমস্যা নেই, কারণ সমস্ত পাথ এবং ইনস্টলগুলি আপেক্ষিক এবং স্পষ্ট।

টিপ: এটিতে package.jsonএমন একটি scriptsট্যাগ অন্তর্ভুক্ত থাকতে পারে যা মোচা জাতীয় কিছু দিয়ে প্রবর্তন করে "test": "./node_modules/.bin/mocha"তবে এটি ভিএস কোড ব্যবহার করে না — পরিবর্তে npm testকমান্ড লাইনে চালিত হলে এটি ব্যবহৃত হয়। এই আমাকে কিছুটা বিভ্রান্ত করেছে। অন্যরাও বিভ্রান্ত হওয়ার ক্ষেত্রে এটি এখানে উল্লেখ করা।

সম্পাদনা: ভিএস কোড 1.9.0 ডিবাগ কনফিগারেশন ড্রপ-ডাউন-এ একটি "কনফিগারেশন যুক্ত করুন" বিকল্প যুক্ত করেছে এবং আপনি "নোড.জেএস মোচা টেস্টস" চয়ন করতে পারেন যা উপরের বেশিরভাগটিকে সহজতর করতে সহায়তা করে। আপনাকে এখনও নিশ্চিত করতে হবে যে মোচা আপনার মধ্যে রয়েছে node_modulesএবং উপযুক্ত পাথগুলিতে ইঙ্গিত করার জন্য cwdসর্বশেষ এবং শেষটি runtimeArgs(যা আপনার পরীক্ষাগুলি সন্ধান করার ধরণ) আপডেট করতে হতে পারে । তবে একবার আপনি এই দুটি সম্পত্তি সেট করে দিলে সেখান থেকে এটি বেশ কার্যকর হওয়া উচিত।


2

লঞ্চ.জসনে, নীচে আরও 1 টি কনফিগারেশন যুক্ত করুন

{
      "type": "node",
      "request": "launch",
      "name": "Mocha Tests",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "--timeout",
        "10000",
        "${workspaceRoot}/services/*.spec.js",
        "${workspaceRoot}/*.spec.js"
      ],
      "internalConsoleOptions": "openOnSessionStart"
    },

আপনার যদি নোড সংস্করণ কনফিগার করতে হয় তবে কেবল runtimeExecutableএই জাতীয় ক্ষেত্র যুক্ত করুন

{
      "type": "node",
      "request": "launch",
      "name": "Mocha Tests",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "--timeout",
        "10000",
        "${workspaceRoot}/services/*.spec.js",
        "${workspaceRoot}/*.spec.js"
      ],
      "internalConsoleOptions": "openOnSessionStart",
      "runtimeExecutable": "${env:HOME}/.nvm/versions/node/v8.2.1/bin/node"
    },

2

1) যান

.vscode

তারপর

প্রবর্তন.জসন

ফাইল

2) লঞ্চ.জসনে নিম্নলিখিত কনফিগারেশন যুক্ত করুন -

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Mocha Test",
            "cwd": "${workspaceRoot}",
            "runtimeExecutable": "${workspaceRoot}/*folder_path_containing_test*/node_modules/.bin/mocha",
            "windows": {
                "runtimeExecutable": "${workspaceRoot}/*folder_path_containing_test*/node_modules/.bin/mocha.cmd"
            },
            "runtimeArgs": [
                "--colors",
                "--recursive",
                "${workspaceRoot}/*folder_path_till_test*/tests"
            ],
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceRoot}/*folder_path_to_test*/app.js"
        }
    ]
}

3) পরীক্ষার ফাইলে ব্রেকপয়েন্টগুলি সেট করুন এবং তারপরে টিপুন F5


1

যে কেউ উইন্ডোজ ব্যবহার করছেন। আপনি যদি বিশ্বজুড়ে মোচা ইনস্টল করেছেন তবে নীচের পথে প্রোগ্রামটি সেট করা আমার পক্ষে কাজ করেছে (আপনার ব্যবহারকারীর নাম পরিবর্তন করতে হবে)।

"program": "C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\mocha\\bin\\_mocha"

1

এটি একটি উইন্ডোজ 7 মেশিনে আমাকে কাজ করছে। আমার কাছে মোচা বিশ্বব্যাপী ইনস্টল করা আছে তবে এই কনফিগারেশনটি ব্যবহারকারীর প্রোফাইল পাথের প্রয়োজনীয়তা এড়াতে প্রকল্প ইনস্টলটির দিকে ইঙ্গিত করছে (যা বিটিডব্লু, আমি% USERPROFILE% ভেরিয়েবলটি কোনও সাফল্য ছাড়াই ব্যবহার করার চেষ্টা করেছি)। আমি এখন আমার মোচা পরীক্ষায় ব্রেকপয়েন্ট সেট করতে সক্ষম। হ্যাঁ!

{
        "name": "Mocha Tests",
        "type": "node",
        "request": "launch",
        "stopOnEntry": false,
        "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
        "cwd": "${workspaceRoot}",
        "args": ["./test/**/*.js"],
        "runtimeExecutable": null,
        "envFile": "${workspaceRoot}/.env"
    }

1

যারা গ্রান্ট বা গাল্প ব্যবহার করছেন তাদের জন্য কনফিগারেশনটি বেশ সহজ।

Launch.json

{
"version": "0.2.0",
"configurations": [

    {
        "name": "Run mocha by grunt",
        "type": "node",
        "program": "${workspaceRoot}/node_modules/grunt/bin/grunt",
        "stopOnEntry": false,
        "args": ["mochaTest"],
        "cwd": "${workspaceRoot}",
        "runtimeExecutable": null
    }
]}

গ্রান্টফিল.জেএস

module.exports = function (grunt) {

grunt.initConfig({
    mochaTest: {
        test: {
            options: {
                reporter: 'spec'
            },
            src: ['test/**/*test.js']
        }
    }
});

grunt.loadNpmTasks('grunt-mocha-test');

grunt.registerTask('default', 'mochaTest');};

1

ভিএসকোড সংস্করণ 1.13.0 (ম্যাকোস) এ তাদের কনফিগারেশন -> এর আওতায় অন্তর্নির্মিত রয়েছে Mocha Tests


উইন্ডোজ একই।
sfratini

1

বাবেল ব্যবহার করার সময়, বা জাভাস্ক্রিপ্ট ফাইলগুলি উত্পন্ন করার পরেও উত্সটিতে ব্রেকপয়েন্ট স্থাপন করছে - আপনাকে সক্ষম sourceMapsএবং সংজ্ঞায়িত করার বিষয়টি নিশ্চিত করতে হবে outFiles। এখানে আমার জন্য কাজ করে এমন একটি কনফিগারেশন রয়েছে।

    {
        "name": "Mocha Test",
        "type": "node",
        "request": "launch",
        "program": "${workspaceRoot}/packages/api/node_modules/mocha/bin/_mocha",
        "cwd": "${workspaceRoot}/packages/api",
        "args": ["--colors", "--no-timeouts", "out/test"],
        "outFiles": ["${workspaceRoot}/packages/api/out/*"],
        "sourceMaps": true,
    },

দ্রষ্টব্য - আপনি outFilesব্রেক ব্রেকপয়েন্ট যুক্ত করতে চান এমন সমস্ত কিছু অন্তর্ভুক্ত করতে আপনাকে সংশোধন করতে হবে। এটি যখন মনোরপো এবং একাধিক নির্ভর প্রকল্পে হয় তখন এটি আরও ক্লান্তিকর হতে পারে।


0

টাইপস্ক্রিপ্ট ব্যবহার করার সময়, নিম্নলিখিত কনফিগারেশন ভিজ্যুয়াল স্টুডিও কোড 0.8.0 (tsc 1.5.3) এ আমার জন্য কাজ করে

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true,
        "outDir": "build",
        "declaration": false
    },
    "files": [
        "./src/index.ts",
        "./src/test/appTests.ts"
    ]
}

এখানে গুরুত্বপূর্ণ বিষয়গুলি লক্ষ্য করার জন্য হ'ল উত্স মানচিত্র তৈরি করা হয় এবং জেএসের জন্য আউটপুট ডিরেক্টরি সেট করা থাকে build

launch.json

    {
        "name": "Attach",
        "type": "node",
        // TCP/IP address. Default is "localhost".
        "address": "localhost",
        // Port to attach to.
        "port": 5858,
        "sourceMaps": true,
        "outDir": "build"
    }

দয়া করে নোট করুন যে sourceMapsসেট করা আছে trueএবং outDirসেট করা আছেbuild

ডিবাগ করতে

  1. index.tsঅন্য যে কোনও আমদানি করা টাইপসক্রিপ্ট ফাইলে ব্রেকপয়েন্টগুলি আটকে দিন
  2. একটি টার্মিনাল খুলুন এবং রান করুন: mocha --debug-brk ./build/test/appTests.js
  3. ভিএসসি থেকে, 'সংযুক্তি' লঞ্চ কনফিগারেশন চালান

0

এখানে মাইক্রোসফ্ট থেকে লঞ্চ কনফিগারেশন (প্রবর্তন.জসন) এর একটি উদাহরণ রয়েছে যা মোচার সাথে কাজ করে এবং ডিবাগার ব্যবহারের অনুমতি দেয়।

এছাড়াও, --debug-brk বিকল্পটি কীভাবে ব্যবহার করতে হয় তার বিবরণ রয়েছে।

অবশেষে, ভিএস কোড এবং গুল্প টাস্ক রানার টাস্ক.জসন ফাইল এবং মোচা পরীক্ষার সাহায্যে কোড ডিবাগ করার বিকল্প বিকল্পটি এখানে রয়েছে ।


0

পরীক্ষায় যদি আপনার কিছু নির্ভরতা থাকে তবে এটি সংযুক্ত করাও সহজ।

উদাহরণস্বরূপ, আমি mongo-unit-helperডেটাবেসগুলির সাথে ইউনিট পরীক্ষাগুলি সংহত করার জন্যও ব্যবহার করছি ।

package.json লিপিটি হ'ল: mocha --recursive --require ./test/mongo-unit-helper.js --exit"

আমার launch.jsonদেখতে দেখতে:

  "configurations": [
  {
  "type": "node",
  "request": "launch",
  "name": "Mocha Tests",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-u",
    "tdd",
    "--timeout",
    "999999",
    "--colors",
    "--recursive",
    "--require",
    "${workspaceFolder}/test/mongo-unit-helper.js",
    "${workspaceFolder}/test/**/*.js",
  ],
  "internalConsoleOptions": "openOnSessionStart"
 }
]

সমাধান করা হয় --requireআলাদাভাবে argsমধ্যে launch.json


0

সহজ সমাধান

.Vscode ফোল্ডারের ভিতরে লঞ্চ.জসনটিতে নিম্নলিখিত কোডটি যুক্ত করুন:

{
            "name": "Unit tests",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
            "args": [
            ],
        }

আপনি অবশ্য সময়সীমা যুক্তি যুক্ত করতে চাইবেন:

 {
            "name": "Unit tests",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
            "args": [
                "--timeout",
                "999999"
            ],
        }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.