【问题标题】:How do I Debug a Javascript Unit Test in Eclipse that is Run with Mocha?如何在 Eclipse 中调试使用 Mocha 运行的 Javascript 单元测试?
【发布时间】:2017-09-15 17:15:36
【问题描述】:

我可以使用这个命令运行我的Mocha/Unit.js 单元测试:

mocha fooTest.js

我想在 Eclipse 中设置断点并调试此单元测试,但我在 Eclipse 中只看到以下调试配置选项。

有没有办法在 Eclipse 的调试模式下执行 Mocha 单元测试?

我正在使用 Eclipse for JavaScript and Web Developers Oxygen Release (4.7.0)。也许我可以安装一个插件,或者创建一个 node.js 调试配置并使其与 mocha 一起运行?或者有没有办法在 IntelliJ IDE 中做到这一点?

【问题讨论】:

  • 氧气释放已经很老了。你应该升级到最新的版本(我写的是 2020-06),它带来了许多改进,包括用于 JavaScript/TypeScript 开发的新插件。

标签: node.js eclipse unit-testing debugging mocha.js


【解决方案1】:

这是一个两步过程。我假设您已经在 J​​avaScript 文件中放置了所需的断点(如果您使用的是 TypeScript,请将断点放置在编译后的 JavaScript 文件中)。

编辑:这也适用于较新版本的 eclipse。

  1. 运行 mocha 测试
    1. 新建外部工具配置
    2. 位置设置为您的mocha.cmd 路径。例如,如果您在全局范围内安装 mocha,这将是 path/to/node/mocha.cmd(在 Windows 中)。如果您在本地安装,那么它将在您的 node_modules 中。
    3. 工作目录设置为您在工作区中的项目路径。例如${workspace_loc:/MyNodeProject}
    4. Arguments 中提供 mocha 套件路径和 Node 的 inspector agent(也称为调试)标志:inspect-brkinspect-brk 标志很重要,因为它在用户代码启动之前中断,使您的 mocha 测试中断/停止,直到您附加调试器(第 2 步)。例如dist/tests/_suite.js --inspect-brk(我使用的是 TypeSCript,所以我的测试在 dist 文件夹中)。
    5. 运行您的配置(单击运行按钮)。
    6. 您的 Eclipse 控制台应显示类似于以下内容的消息:
    Debugger listening on ws://127.0.0.1:9229/229a0421-cc41-4202-ab46-a392e86418e3
    For help, see: https://nodejs.org/en/docs/inspector
    
  2. 启动 Wild Web Developers 检查器客户端。
    1. Debug Configurations 下创建一个新的Running Node.js Application 配置。菜单:Run -> Debug Configurations...
    2. Attach 选项卡中,将 AddressPort 设置为控制台中打印的值(从第一步开始)。在这种情况下,Address:127.0.0.1(相当于 localhost),Port:9229。这些是默认值,所以如果您没有更改节点/mocha 配置你应该使用相同的。
    3. 启动调试会话(单击“调试”按钮)
    4. 您的 Eclipse 应该切换到调试透视图并且您的测试代码开始执行直到第一个断点。

进行更改后,由于您已经有了运行配置,您只需要启动它们(顺序无关紧要,因为检查器客户端调试配置将“无限期地”运行以等待远程应用程序连接)。

节点 10 的问题

根据这个question,节点中有一个错误导致调试器对子进程失败。由于 mocha 在子进程中运行测试,如果您使用的是 Node 10,您将无法调试实际的测试代码。

【讨论】:

    猜你喜欢
    • 2013-07-31
    • 1970-01-01
    • 2012-05-26
    • 2023-03-30
    • 2012-06-05
    • 2016-08-27
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多