ขออภัยที่เพิ่มคำตอบอื่น แต่ไม่มีคำตอบก่อนหน้านี้ที่ใช้ได้กับฉันตั้งแต่ VS Code 1.8.1 และตัวดีบักเกอร์โหนดมาตรฐานที่รวมอยู่ในนั้น นี่คือวิธีที่ฉันแก้ไข (พร้อมคำแนะนำจากคำตอบก่อนหน้านี้ที่นี่และจากเอกสารการดีบัก VS Code Node.jsอย่างเป็นทางการ) ดังนั้นจึงมีการดีบักแบบคลิก / กดปุ่มเดียว:
- ตรวจสอบให้แน่ใจว่าได้ติดตั้งมอคค่าไว้
devDependencyในpackages.json:"devDependencies": { "mocha": "^3.2", ... }
- เรียกใช้
npm installในไดเร็กทอรีของคุณpackage.jsonเพื่อให้แน่ใจว่าได้ติดตั้งมอคค่าแล้วnode_modules/
- เปิด
.vscode/launch.json(หรือใน VS Code กด F1 เริ่มพิมพ์ "launch" และเลือก "Debug: Open launch.json")
- คลิกปุ่ม "เพิ่มการกำหนดค่า" สีน้ำเงินที่ด้านล่างขวา (หรือเพียงแค่คัดลอกและวางรายการอื่นของคุณ) ขั้นตอนนี้เป็นทางเลือก ... ฉันหมายถึงคุณสามารถใช้การกำหนดค่าที่มีอยู่ซ้ำได้ แต่ฉันขอแนะนำให้เพิ่มหนึ่งรายการเพื่อไม่ให้สับสน
- เปลี่ยนสิ่งต่อไปนี้ในของคุณ
launch.jsonจากนั้นเลือกชื่อการกำหนดค่าใหม่ในหน้าต่างดีบักใน VS Code แล้วคลิกลูกศรสีเขียวเพื่อเริ่มการดีบักโหนด + การทดสอบมอคค่าของคุณ!
ในการกำหนดค่าใหม่ใน 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ที่เก็บหรือไม่ เป็นไฟล์ IDE เท่านั้น แต่ทั้งทีมของคุณสามารถใช้งานได้ในลักษณะนี้ไม่มีปัญหาเนื่องจากเส้นทางและการติดตั้งทั้งหมดเป็นแบบสัมพัทธ์และชัดเจน
เคล็ดลับ: package.jsonสามารถรวมscriptsแท็กที่เรียกใช้ mocha ด้วยบางอย่างเช่น"test": "./node_modules/.bin/mocha"แต่ VS Code ไม่ได้ใช้ แต่จะใช้เมื่อnpm testถูกเรียกใช้ที่บรรทัดคำสั่งแทน อันนี้ทำให้ฉันสับสนเล็กน้อย สังเกตที่นี่เผื่อว่าคนอื่นจะสับสนด้วย
แก้ไข: VS Code 1.9.0 ได้เพิ่มตัวเลือก "Add Configuration" ในเมนูแบบเลื่อนลงการกำหนดค่าการดีบักและคุณสามารถเลือก "Node.js Mocha Tests" ซึ่งช่วยให้ส่วนใหญ่ง่ายขึ้น คุณยังคงต้องแน่ใจว่ามอคค่าอยู่ในของคุณnode_modulesและอาจต้องอัปเดตcwdและสุดท้ายruntimeArgs(ซึ่งเป็นรูปแบบในการค้นหาการทดสอบของคุณ) เพื่อชี้ไปยังเส้นทางที่เหมาะสม แต่เมื่อคุณตั้งค่าคุณสมบัติทั้งสองนี้แล้วก็น่าจะใช้งานได้ดีจากตรงนั้น
"args"บล็อก:"--require", "${workspaceFolder}/tools/testSetup.js",