node.js - 为什么当我运行 npm test 时,较新版本的 mocha 不输出测试详细信息?

标签 node.js npm mocha.js

我为我的项目指定了以下devDependency:

"mocha": "^3.4.2",
"mocha-sinon": "^2.0.0",
"sinon": "^2.3.7",

当我用这些运行测试时,我只得到最小的输出:

$ npm test

  Basic test example.
    simple test examples

当我将 mocha 依赖项降级到这些版本时:

"mocha": "^3.2.0",
"mocha-sinon": "^1.1.6",
"sinon": "^1.17.7",

我得到了预期的详细输出:

$ npm test

  Basic test example.
    simple test examples
      - expects more tests in future.

  2 passing (27ms)
  1 pending

其他一切都一样。我摆弄了一些 Mocha 命令行选项,但没有效果。

如何获得新版本的详细输出?

最佳答案

您正在 stub console.log() ( here ),这是大多数(全部?)Mocha 记者用来记录其输出的内容(也许这在 Mocha 版本之间发生了变化,这可以解释为什么它适用于旧版本)。

既然你对它进行了 stub 处理,它基本上就会被一个除了跟踪它如何被调用以及使用什么参数之外什么也不做的函数所取代。

我不确定您的意图是什么(测试文件似乎是一个占位符),但要解决问题,请尝试监视它:

this.sinon.spy(console, 'log');

spy 将进行相同的跟踪,但也会调用其正在监视的原始函数。

关于node.js - 为什么当我运行 npm test 时,较新版本的 mocha 不输出测试详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047506/

相关文章:

javascript - 在预定义的 Mongoose 结构中连接多个数据库

node.js - 如何使用everest-js创建Note?

node.js - 如何以编程方式获取 npm 安装模块的详细信息?

javascript - 在 audiosprite 中加载错误 - 找不到模块 : 'child_process'

node.js - 如何在 Cypress 中共享变量值

node.js - ExpressJs : Istanbul coverage report with mocha

node.js - Google Home 应用开发本地设备访问

npm deprecate 返回一个版本

javascript - Sails.js:如何实际运行测试

node.js - 反向填充 Mongoose