当前位置:  开发笔记 > 前端 > 正文

如何在Visual Studio代码中使用Karma/Jasmine调试单元测试?

如何解决《如何在VisualStudio代码中使用Karma/Jasmine调试单元测试?》经验,为你挑选了1个好方法。

我希望能够在Visual Studio Code中调试单元测试,但到目前为止它已经是一个混合包.

我的设置:

launch.json

{
   "version": "0.2.0",
   "configurations": [
           {
              "name": "Debug tests",
              "type": "chrome",
              "request": "attach",
              "port": 9222,
              "sourceMaps": true,
              "webRoot": "${workspaceRoot}"
           }
   ]
}

karma.config.js

customLaunchers: {
   Chrome_with_debugging: {
     base: 'Chrome',
     flags: ['--remote-debugging-port=9222']
   }
}

这似乎在某种程度上起作用,如果我启动VS Code调试器它似乎附加(底栏变为橙色).如果我做出改变,Karma也会启动和调试器 - 但它总是暂停zone.js(顺便说一下这是一个Angular项目)而不会干扰我:

暂停在zone.js中

如果我点击"继续"它实际上击中了我的断点

在此输入图像描述

我可以检查一些变量,但不是全部,

显示了一些变量,有些则没有

例如,我看不到actual传递给Jasmine expect方法的值.

所以a)为什么调试器总是在内部暂停zone.js- 测试的代码来自Redux reducer并在任何Angular上下文之外调用,以及b)我无法检查局部变量(这是一个showstopper)马上)?



1> Bachu..:

在karma.conf.js中,我在您的版本中更新了添加的调试选项.

customLaunchers: {
   Chrome_with_debugging: {
     base: 'Chrome',
     flags: ['--remote-debugging-port=9222'],
     debug: true
}}

launch.json 将以下代码段添加为启动配置,

{
    "name": "Debug tests",
    "type": "chrome",
    "request": "attach",
    "port": 9222,
    "sourceMaps": true,
    "webRoot": "${workspaceRoot}"
}

然后使用以下命令触发测试,

ng test --browsers Chrome_with_debugging

使用Visual Studio代码调试选项"调试测试"来附加到UT.有了这个,我能够使用"Visual Studio Code + Debugger for Chrome extension"中的断点调试单元测试.

问候

Basanth

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有