2017-03-25 17 views
5

Bir Typescript kitaplığı yazarım. Birim testleri de Mocha framework kullanarak Typescript yazılmıştır. Birim testlerini javascript derlemeden doğrudan yürütmek istiyorum. Bu, bu komutla çalışır:Visual Studio Kodundan Mocha ile Typescript'te yazılan birim sınamaları nasıl hata ayıklanır?

./node_modules/mocha/bin/mocha ./test/*.test.ts --require ts-node/register 

aşağıdaki fırlatma ayarlarla Visual Studio kod alanından birim testi hata ayıklama deneyin:,

{ 
    "type": "node", 
    "request": "launch", 
    "name": "Mocha Tests", 
    "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha", 
    "args": [ 
     "--require", 
     "ts-node/register", 
     "${workspaceRoot}/test/*.test.ts" 
    ], 
    "internalConsoleOptions": "openOnSessionStart" 
} 

VS Code'dan Mocha kendisi debug Bu şekilde ancak Birim testleri değil. Mocha, testler için ayrı süreçler üretir ve hata ayıklayıcı otomatik olarak alt süreçlere eklenemez.

Visual Studio Kodundan türetim birimi sınamalarını ayıklamanın doğru yolu nedir?

cevap

0

tl; dr: Ben onunla değil% 100 memnunum rağmen Nodejs debugger command


kullanmak benim sorun için bir çözüm/geçici çözüm bulundu.

Mocha için --require ts-node/register anahtarını vererek temelde test ortamına ts-node/register.js kütüphane enjekte edin. Bu kitaplık sarımları arama gerektirir ve bir .ts dosyası yüklendiğinde, isteğe bağlı olarak kod kodunu derler.

ts-node/register'in nasıl çalıştığını test etmek için Mocha olmadan basit bir Nodejs örneği yazdım. Örnekte bir debug_test.js dosya ve bir debug_test.ts dosya var. debug_test.js başlatıyorum ve debug_test.ts yükler.

Örneğe Vissual Studio Code'dan basit bir 'Node.js: Başlat Programı' yapılandırması ile başlıyorum. Ben debug_test.ts:2 sorunu bir kesme noktası koymak

enter image description here

benim orijinal probleme aynı olduğu - kesilmez. Ben Nodejs debugger komutunu kullanırsanız

enter image description here

Ancak, kırar ve Başvurumu hata.

debugger komutuna bir kesme noktası koyduğumda, Visual Studio Kodu çağrı yığınını tanır, hata ayıklama konsolu kullanılabilir, ancak UI'deki yerel değişkenleri göremiyorum.

enter image description here

Bir VS Kod hata veya iyileştirme fırsatı olarak görünüyor ama şimdilik bu çözüm de benim orijinal fırlatma yapılandırma ile Mocha ile çalışır. Herkes yararlı bulursa

2

aşağıdaki launch.json yapılandırma pasajı herhangi bir geçici olmadan benim için çalışıyor:

{ 
    "name": "mocha tests", 
    "type": "node", 
    "protocol" : "inspector", 
    "request": "launch", 
    "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha", 
    "stopOnEntry": false, 
    "args": [ "--compilers", "ts:ts-node/register", "--no-timeouts", "${relativeFile}"], 
    "cwd": "${workspaceRoot}" 
    } 

İşleri cezası benim için node v7.10.0, tsc 2.4.0 ve Visual Studio Code 1.13.1 ile. Hem mocha hem de tsc, yerel olarak node_modules'un altında yüklenir.

İlgili konular