【问题标题】:With mocha/chai how can i make it show lines skipped?使用 mocha/chai 如何让它显示跳过的行?
【发布时间】:2022-02-02 20:19:56
【问题描述】:

我有一个失败的单元测试正在比较两个大型数组,并且 mocha 的输出被部分跳过。

         "Qualifying/Commissions/Amount"
         "Qualifying/Other/Amount"
         "Qualifying/Overtime/Amount"
         "Qualifying/Total/Amount"
      -  "Factors/De/ ... Lines skipped
      +  "Factors/De/Base/Amount"
      +  "Factors/De/Bo ... Lines skipped

如何获得更多被跳过的行? Pytest 有一个 -v 选项用于详细说明。

这是调用的结果

expect(actual).to.deep.equal(expected)

实际和预期都是大字符串数组。

版本:
"摩卡": "^9.0.3",
"sinon-chai": "^3.5.0",
"柴": "~4.1",

【问题讨论】:

标签: javascript unit-testing mocha.js


【解决方案1】:

这个比较难,我也遇到过。

TL;DR

转到 node_modules/mocha/lib/reporters/base.js: 193 将const diffSize = 2048; 更改为更大的。

详情

他们限制行大小的原因是因为这个问题:https://github.com/mochajs/mocha/issues/3675

他们用这个 PR 解决了:https://github.com/mochajs/mocha/pull/4638

相关的代码是:

 const diffSize = 2048;
    if (actual.length > diffSize) {
      actual = actual.substring(0, diffSize) + ' ... Lines skipped';
    }
    if (expected.length > diffSize) {
      expected = expected.substring(0, diffSize) + ' ... Lines skipped';
    }

因此,您需要将 diffSize 修改为更大的值。 也许仅限本地开发人员,如果您想在其他环境中使用它,请尝试一些补丁挂钩。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2019-02-15
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2021-02-14
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多