2015-12-03 22 views
11

Thử nghiệm đơn vị của tôi được chạy bằng cách sử dụng Karma/Jasmine thông qua Grunt. Khi tôi chạyLàm thế nào để gỡ lỗi các bài kiểm tra Jasmine chạy từ Grunt trong Visual Studio Code?

grunt test 

các thử nghiệm được thực hiện từ dòng lệnh.

Khi mở dự án trong Visual Studio Code, tôi có thể chạy cùng một lệnh bằng cách sử dụng Tasks: Run Test Task. VSCode thực thi Grunt với tham số test và hiển thị đầu ra.

Làm cách nào để gỡ lỗi các trường hợp thử nghiệm được VSCode chạy trong trường hợp này? Khi tôi nhấn F5, tệp mẫu launch.json được mở. Tôi cần gì để cung cấp cho program, args v.v. để bắt đầu/gỡ lỗi các trường hợp thử nghiệm giống nhau được điều hành bởi grunt test?

Tôi đã thử những điều sau đây:

  • program: /usr/local/bin/grunt
  • args: ["test"]

này bắt đầu thành công quá trình Grunt và các bài kiểm tra được thực hiện, nhưng nó không dừng lại ở điểm ngắt trong mã thử nghiệm của tôi.

Ngoài ra, nó đóng (hoặc treo) toàn bộ quá trình VSCode sau một vài giây. Bạn không chắc chắn đó là một lỗi trong VSCode hay là kết quả của cấu hình chạy trên.

Trả lời

2

ra mắt này cấu hình làm việc cho tôi trong VS Mã 0.10.2:

{ 
    "name": "grunt", 
    "type": "node", 
    "request": "launch", 
    "program": "/usr/local/bin/grunt", 
    "args": ["test"], 
    "stopOnEntry": false 
} 

Thiết lập một breakpoint trong "test" của tôi nhiệm vụ đưa ra debugger VS Mã để dừng lại ở đó. Tôi đã phải cài đặt grunt tại địa phương (trong thư mục mà tôi có Gruntfile).

+0

Tôi đã thử cấu hình đó - và nó đóng toàn bộ ứng dụng Mã VS sau khi quá trình thử nghiệm kết thúc ... – nwinkler

+0

Tôi cũng đang cố gắng tìm ra điều này ngay bây giờ - có vẻ như im có thể gỡ lỗi mã chạy trong 'Gruntfile.js' nhưng không có gì ngoài đó ... đó là những gì tôi nghĩ tôi và @nwinkler muốn. –

2

Tôi không nghĩ rằng bạn hiện có thể làm điều gì đó như node --debug-brk grunt test nơi thử nghiệm sẽ quay lên thử nghiệm hoa nhài - vì hoa nhài sẽ gọi nút trên các tệp đặc tả này mà không có cờ gỡ lỗi tại chỗ. Tôi cố gắng này và đây là những gì tôi nhận:

node --debug-brk=3691 --nolazy ../../../usr/local/bin/grunt kftest --schema=9.2.1 --dbtype=sqlite --target=builder/properties --spec=test/builder/properties/properties-spec.js 
Debugger listening on port 3691 
Running "kftest" task 
>> going to run with spec: test/builder/properties/properties-spec.js 
>> command: node --debug-brk=46307 /Users/computername/project/node_modules/jasmine-node/lib/jasmine-node/cli.js test/builder/properties/properties-spec.js 
Running "shell:kftest" (shell) task 
Debugger listening on port 46307 

Đây không phải là quá hữu ích kể từ bây giờ debugger vscode sẽ nhìn 3691 trong khi 46.307 không được kiểm tra bởi bất cứ điều gì - và tôi không biết làm thế nào để nói vscode cũng lắng nghe cổng đó.

Soooo những gì tôi đã kết thúc làm là để làm theo các câu trả lời được đăng ở đây: Debugging jasmine-node tests with node-inspector

Về cơ bản vscode tôi launch.json bao gồm một cấu hình mà nhìn như thế này:

{ 
    "name": "Jasmine-Node Debugging", 
    "cwd": "${workspaceRoot}", 
    "program": "${workspaceRoot}/node_modules/jasmine-node/lib/jasmine-node/cli.js", 
    "request": "launch", 
    "type": "node", 
    "args": [ 
    "test/builder/properties/properties-spec.js" 
    ] 
} 

Hy vọng rằng sẽ giúp.

+0

Cảm ơn, cấu hình này trong launch.json hoạt động cho tôi. – cateyes

Các vấn đề liên quan