【问题标题】:Make certain test silent in Jest在 Jest 中使某些测试保持沉默
【发布时间】:2019-07-15 19:14:37
【问题描述】:

有什么方法可以让 Jest 中的某个测试静默(仅在失败时显示控制台输出)?看起来jest --silent 使所有测试都保持沉默,这是不可取的。我需要模拟一个错误并确保它得到正确处理,但不幸的是,在这种情况下有一个调用 console.error 的第三方代码。但我不想完全禁用 console.error,因为如果失败,我需要查看详细信息。

【问题讨论】:

  • 您是否设法弄清楚如何使单个测试静音?我有一个测试会产生大量输出,并且非常希望将其静音(但仅在成功时)。

标签: javascript testing console jestjs silent


【解决方案1】:

我不知道是否可以直接使测试用例静音,但您始终可以为您的测试文件使用具有不同开玩笑配置的不同testRegex

例如,您可以为测试文件采用以下命名约定:

  • myfile.{js,jsx,ts,tsx}:Jest 不应抑制任何输出(console.log、错误等)
  • myfile.silent.{js,jsx,ts,tsx}: Jest 应该抑制输出

并且,在您的 package.json 中,以这种方式定义您的测试脚本:

"test": "yarn test:default && yarn test:silent",
"test:silent": "jest __tests__\\/.*\\(silent\\)\\.\\(jsx?\\|tsx?\\)$ --silent",
"test:default": "jest __tests__\\/\\(?!.*silent\\).*\\.\\(jsx?\\|tsx?\\)$",

package.json 中的正则表达式不容易阅读,所以我做了这个:

https://regex101.com/r/cFX9FW/1

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 2020-12-04
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多