【问题标题】:How to debug with npm test如何使用 npm test 进行调试
【发布时间】:2018-06-26 18:30:29
【问题描述】:

我正在使用 VS 代码。当我尝试在调试模式下运行测试时,它说描述不是一个函数。因此,我能够运行测试的唯一方法是通过 npm Note。

注意:我使用的是 mocha 和 chai。

var { describe,it, before, after } = require('mocha');
var assert = require('chai').assert;
var AuthAPI = require('../api/controllers/API.js');
     describe('getItem tests', function() {
    it('getItem ', function(done) {
      var API = new AuthAPI(clientId, PASS, List);

      api_jwt = API.getItem();
      assert.isNotEmpty(api_jwt);
    });
    )}

【问题讨论】:

  • 你能给我们看看代码吗?
  • 我已经添加了下面的代码
  • 将代码添加到问题中(使用编辑),您不能将其放在答案中
  • 我已经在全球范围内安装了 mocha 并具有以下要求,但是当我运行 mocha 时,它说 describe 不是函数: const { describe,it, before, after } = require('mocha');
  • @MANOJ 我认为这是意料之中的,看看这个关于摩卡新功能的公开讨论github.com/mochajs/mocha/issues/1969。我认为您可能想使用我的回答中的一种解决方案。

标签: node.js mocha.js


【解决方案1】:

我认为您的 mocha 测试只需要另一个启动配置。

转到 Visual Studio 代码中的调试部分。

单击选择控件,然后选择“添加配置...”(或者只需单击齿轮图标,然后单击“添加配置...”按钮);

你应该可以在那里选择“Node.js: Mocha Tests”,它会生成一个像这样的启动配置:

{
    "type": "node",
    "request": "launch",
    "name": "Mocha Tests",
    "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
    "args": [
        "-u",
        "tdd",
        "--timeout",
        "999999",
        "--colors",
        "${workspaceFolder}/test"
    ],
    "internalConsoleOptions": "openOnSessionStart"
},

!注意:从 mocha 6 开始,需要正确选择接口(@98​​7654321@),如果要使用describe 函数,请将 tdd 更改为 bdd。

确保您的 mocha 测试位于 ./test 文件夹中,并且您已在本地安装 mocha 或自定义启动器配置。

假设您有一个测试 ./test/it_should_work.js(注意,它没有任何要求,因为 mocha 二进制文件本身知道该功能)

describe('test', () => {
  it('should work', () => {
  });
})

启动一个新创建的“Mocha Test”配置,它应该返回一个成功的结果。

test
    ✓ should work
  1 passing (9ms)

但如果您真的需要以编程方式启动 mocha 测试,请查看此官方 wiki 页面https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically

【讨论】:

  • @Nick 感谢您的评论,请参阅解决方案的 !Note 部分。
  • “单击选择控件”是什么意思? (按 Debug/Add Configuration.. 或 Gear 似乎都没有做任何事情。)谢谢。
  • 您不必指定是使用tdd 还是bdd。摩卡会解决这个问题。如果您强制使用特定的样式,您只会遇到麻烦。参见示例配置:github.com/Microsoft/vscode-recipes/tree/master/…
猜你喜欢
  • 2015-06-30
  • 2014-10-05
  • 2018-01-01
  • 2022-01-02
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
相关资源
最近更新 更多