【问题标题】:debugging jasmine test cases run by gulp in visual studio code?调试由 gulp 在 Visual Studio 代码中运行的 jasmine 测试用例?
【发布时间】:2016-01-27 09:59:09
【问题描述】:

我正在尝试在 Visual Studio 代码调试控制台中调试 jasmine 测试用例。 下面是我的 launch.json 和 gulpfile.js 配置:

在我的 gulp 任务中,我尝试使用“gulp-jasmine”来运行测试用例和“gulp-karma”(在 jasmine 下方评论)。现在使用任何一个,我都可以通过命令行 (gulp "task name") 或通过 vs code 中的 task.json 文件成功执行我的测试用例。
但是,我想调试我的 jasmine 测试用例 (spec/StockSpec.js ) 本身。在运行调试 (f5) 时,调试器成功在 gulpfile.js 的入口点暂停,如下所示:

从这里开始,无论我选择哪种方案,我都无法导航到我的 jasmine 测试用例:

场景 1:点击 Step Over (F10) 时 -- 跳到下一个 gulp 任务
场景 2:点击 Step In/out (F11 / shift +F11) -- 跳转到一些内部的 module.js , index.js 等文件。

我应该如何继续?

【问题讨论】:

  • 我不知道VS,所以不能提供解决方案,但我可以解决你的一些困惑。 Gulp 只运行 Jasmine 测试,就像它可以运行其他二进制文件一样。它不会对您的 Jasmine 规范进行 js 调用,因此 gulp 中的断点不会让您走得太远!

标签: debugging jasmine visual-studio-code


【解决方案1】:

这会贯穿gulpfile.js,但不会触发 gulp 任务本身。启动程序必须是gulp.js,并以 gulp 任务作为参数。然后,您可以简单地在单元测试中设置断点。

以下启动配置适用于我触发unittests gulp 任务:

{
  "name": "Launch",
  "type": "node",
  "request": "launch",
  "program": "${workspaceRoot}/node_modules/gulp/bin/gulp.js",
  "stopOnEntry": false,
  "args": [
    "unittests"
  ],
  "cwd": "${workspaceRoot}/src/",
  "preLaunchTask": null,
  "runtimeExecutable": null,
  "runtimeArgs": [
    "--nolazy"
  ],
  "env": {
    "NODE_ENV": "development"
  },
  "externalConsole": false,
  "sourceMaps": false,
  "outDir": null
}

【讨论】:

  • 感谢您为我指明了正确的方向。请注意,vs code 现在似乎对通过 UI 添加 gulp 任务的启动配置具有一流的支持。
猜你喜欢
  • 2017-12-15
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多