Tahukah Anda, bahwa Anda baru saja masuk ke konfigurasi peluncuran Anda, meletakkan kursor Anda setelah atau di antara konfigurasi Anda yang lain dan tekan ctrl- spaceuntuk mendapatkan konfigurasi moka saat ini yang valid dibuat secara otomatis?
Yang bekerja dengan baik untuk saya. Termasuk berhenti di breakpoint. (Saya juga memiliki yang sebelumnya, sekarang sudah usang, yang tidak lagi karena berbagai alasan terkait pengaturan.)
Pada VSCode 1.21.1 (Maret 2018) ini menghasilkan:
{
"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
}
}
Di samping catatan: debug-brk
tidak dikoreksi (untuk siapa pun dengan Node> = setidaknya Versi 8).
"args"
blok:"--require", "${workspaceFolder}/tools/testSetup.js",
Ctrl+Space
Konfigurasi Mocha Tests yang dibuat secara otomatis tidak memilikidebug-brk
. Meskipun demikian, debugging dengan breakpoint bekerja dengan baik.debug-brk
ini tidak lagi diperlukan digunakan, didukung atau dimasukkan otomatis. Catatan sampingan saya hanya mengklarifikasi ini, karena beberapa jawaban lain menyebutkannya.ctrl + space
agar berfungsi.Jika Anda tidak ingin menggunakan
--debug-brk
+ Lampirkan atau nyatakan jalur absolut ke instalasi mocha global Anda (yang akan rusak jika Anda tetap menjalankan launch.json di bawah kontrol versi dan memiliki beberapa pengembang di mesin yang berbeda), instal mocha sebagai ketergantungan dev dan tambahkan ini ke launch.json Anda:Dukungan debugging penuh dalam pengujian Anda hanya dengan menekan F5.
--no-timeouts
memastikan pengujian Anda tidak memiliki waktu habis karena Anda berhenti di breakpoint, dan--colors
memastikan Mocha mengeluarkan warna meskipun tidak mendeteksi bahwa VS Code mendukung warna.sumber
sourceMaps: true
. Terima kasih satu miliar!npm_config_myparam
ke blok env. Di mana di CLI, mungkin terlihat seperti itunpm --myparam=myvalue test
.Cara lain adalah dengan menggunakan
--debug-brk
opsi baris perintah mocha dan pengaturanAttach
peluncuran default dari debugger Visual Studio Code.Penjelasan lebih dalam yang disarankan (dari André)
Untuk melakukan ini:
Jalankan mocha dari baris perintah menggunakan perintah ini:
Sekarang di VS Code, klik ikon Debug, lalu pilih
Attach
dari opsi di sebelah tombol start. Tambahkan breakpoints di VS Code dan kemudian klik start.sumber
"request": "attach"
ke launch.json jika tidak ada - jika tidak, ia akan mengeluh bahwa Anda harus menentukan program atau kesalahan lainnya.VS Code
spesifik. Tidak berfungsi dalam VS normal 2015--debug-brk
yang saat ini ditinggalkan , itu sebabnya saya sarankan auto-menciptakan config men-debug segar dalam vscode , ya, alslo khusus untuk mocha.Saya telah membuat ini bekerja pada VSCode di OS X 10.10. Ganti saja
./settings/launch.json
file Anda dengan ini.Ini juga tersedia sebagai intinya di sini .
Nilai kunci yang perlu Anda ubah adalah
program
, yang harus disetel ke_mocha
dapat dieksekusi, danargs
, yang harus berupa larik file pengujian Anda.sumber
OpenDebug process has terminated unexpectedly
"runtimeExecutable"
ke"C:/Program Files/nodejs/node.exe"
atau di mana pun Node diinstal?Cara saya membuatnya berfungsi pada VS Code (1.8.2) di Mac OS X adalah:
Mocha perlu diinstal di direktori modul npm.
sumber
Debug > Add Configuration...
menuNode.js
lingkunganMocha Tests
opsi dari daftar drop-down yang munculargs
propertibreakpoint
Debug
ikonMocha Tests
sebagai konfigurasiStart debugging
tombolsumber
Saya telah menemukan cara untuk melakukan ini yang saya klasifikasikan sebagai solusi . Saya berharap tim Visual Studio Code memberikan solusi yang lebih pasti untuk ini, tetapi sementara itu, inilah yang telah saya lakukan:
./settings/mocha.js
file yang menjalankan mocha secara terprogram melewati argumen sebagai daftar file yang akan dijalankan. Anda dapat melihat file lengkapnya di sini ;Saya telah membuat konfigurasi peluncuran yang akan menjalankan
./settings/mocha.js
sebagaiprogram
dan meneruskan pola file / file yang perlu kita uji sebagai argumen:Contoh launch.json lengkap
Jadi ini setara dengan melakukan
mocha test/unit/*.js test/unit/**/*.js
dan sekarang kami dapat menggunakan breakpoint dalam pengujian mocha kami.sumber
'sourceMaps': true, 'outDir': './build'
ke konfigurasi peluncuran saya.Jika Anda menambahkan variabel $ {file} di akhir daftar args, Anda dapat mulai men-debug langsung dari file yang telah Anda buka:
sumber
Maaf telah menambahkan jawaban lain, tetapi tidak ada jawaban sebelumnya yang cukup berhasil untuk saya pada VS Code 1.8.1 dan debugger Node standar termasuk di dalamnya. Berikut adalah cara saya menyelesaikannya (dengan panduan dari jawaban sebelumnya di sini dan dari dokumen resmi Debugging VS Code Node.js ) jadi ada satu klik / tekan tombol debugging:
devDependency
dipackages.json
:"devDependencies": { "mocha": "^3.2", ... }
npm install
di direktori Andapackage.json
untuk memastikan mocha sekarang terpasangnode_modules/
.vscode/launch.json
(atau di VS Code, tekan F1, mulai ketik "launch", dan pilih "Debug: Open launch.json")launch.json
, lalu pilih nama konfigurasi baru di jendela debug di VS Code dan klik panah hijau untuk mulai men-debug tes node + mocha Anda!Di konfigurasi baru di
launch.json:
Ini mengasumsikan bahwa pola
test/**/*.js
akan bekerja di tempat Anda melakukan pengujian. Ganti sesuai kebutuhan.Jangan ragu untuk mengubah port selama Anda mengubahnya di kedua properti
args
danport
agar cocok.Perbedaan utama bagi saya adalah memastikan moka masuk
node_modules
, menggunakanprogram
untuk menunjuk ke yang dapat dieksekusi, danargs
perludebug-brk=x
menunjuk ke port yang ditentukan diport
. Sisa dari yang di atas hanya membuat segalanya lebih cantik dan mudah.Terserah Anda dan tim apakah Anda taruh
.vscode/launch.json
di repositori atau tidak. Ini adalah file khusus IDE, tetapi seluruh tim Anda dapat menggunakannya seperti ini, tidak masalah, karena semua jalur dan pemasangan bersifat relatif dan eksplisit.Tip:
package.json
Dapat menyertakanscripts
tag yang juga meluncurkan mocha dengan sesuatu seperti"test": "./node_modules/.bin/mocha"
, tetapi tidak digunakan oleh VS Code — melainkan digunakan ketikanpm test
dijalankan pada baris perintah. Yang ini membuatku sedikit bingung. Mencatatnya di sini kalau-kalau orang lain juga bingung.EDIT: VS Code 1.9.0 telah menambahkan opsi "Add Configuration" di drop-down konfigurasi debug, dan Anda dapat memilih "Node.js Mocha Tests" yang membantu menyederhanakan sebagian besar hal di atas. Anda masih perlu memastikan mocha ada di Anda
node_modules
dan mungkin harus memperbaruicwd
dan yang terakhirruntimeArgs
(yang merupakan pola untuk menemukan pengujian Anda) untuk menunjuk ke jalur yang sesuai. Tapi begitu Anda menyetel kedua properti itu, seharusnya berfungsi cukup banyak dari sana.sumber
di launch.json, tambahkan 1 konfigurasi lagi di bawah
jika Anda perlu mengkonfigurasi versi node, cukup tambahkan
runtimeExecutable
kolom seperti inisumber
Untuk siapa saja yang menggunakan Windows. Jika Anda telah menginstal mocha secara global, maka pengaturan program ke jalur berikut berhasil untuk saya (tukar dengan nama pengguna Anda).
sumber
Ini bekerja untuk saya pada mesin Windows 7. Saya memang telah menginstal mocha secara global, tetapi konfigurasi ini mengarah ke penginstalan proyek untuk menghindari kebutuhan akan jalur profil pengguna (yang btw, saya mencoba menggunakan variabel% USERPROFILE% tetapi tidak berhasil). Saya dapat menyetel breakpoint dalam pengujian mocha saya sekarang. Yay!
sumber
Bagi mereka yang menggunakan grunt atau gulp, konfigurasinya cukup sederhana.
Launch.json
Gruntfile.js
sumber
Dalam VSCode versi 1.13.0 (macOS), mereka memiliki konfigurasi bawaan di bawah ->
Mocha Tests
.sumber
Saat menggunakan Babel, atau membuat file javascript namun menempatkan breakpoint di sumbernya - Anda harus memastikan untuk mengaktifkan
sourceMaps
dan menentukanoutFiles
. Berikut ini contoh konfigurasi yang berhasil untuk saya.Catatan - Anda harus memodifikasi
outFiles
untuk memasukkan semua yang mungkin ingin Anda tambahkan breakpoint. Ini bisa lebih membosankan ketika dalam monorepo dan beberapa proyek yang bergantung.sumber
1) Pergi ke
kemudian
mengajukan
2) Tambahkan konfigurasi berikut di launch.json -
3) Atur breakpoints dalam file tes dan kemudian tekan
F5
sumber
Saat menggunakan TypeScript, konfigurasi berikut berfungsi untuk saya dalam Visual Studio Code 0.8.0 (tsc 1.5.3)
tsconfig.json
Hal penting yang perlu diperhatikan di sini adalah bahwa peta sumber dibuat dan direktori keluaran untuk js diatur ke
build
launch.json
Harap dicatat bahwa di
sourceMaps
set ketrue
dan dioutDir
set kebuild
untuk men-debug
index.ts
putus di file skrip jenis yang diimpormocha --debug-brk ./build/test/appTests.js
sumber
Berikut adalah contoh konfigurasi peluncuran (launch.json) dari Microsoft, yang bekerja dengan Mocha dan memungkinkan penggunaan debugger.
Juga, ada deskripsi tentang bagaimana menggunakan opsi --debug-brk.
Terakhir, berikut adalah versi alternatif tentang cara men-debug kode dengan tes Mocha menggunakan file task.json dari VS Code dan pelari tugas Gulp.
sumber
Jika Anda memiliki beberapa ketergantungan dalam pengujian, mudah juga untuk memasangnya.
Misalnya, saya menggunakan
mongo-unit-helper
untuk juga memiliki tes unit terintegrasi dengan Database.package.json
script adalah:mocha --recursive --require ./test/mongo-unit-helper.js --exit"
Saya
launch.json
terlihat seperti:Solusi adalah dengan menempatkan
--require
secara terpisah diargs
dalamlaunch.json
.sumber
Solusi paling sederhana
Tambahkan kode berikut ke launch.json di dalam folder .vscode:
Namun Anda mungkin ingin menambahkan argumen batas waktu juga:
sumber