You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Jest运行测试时不报告被跳过的测试用例?

Jest隐藏跳过测试报告及用例级打标解决方案

隐藏被跳过测试的报告输出

你可以通过配置Jest默认报告器的参数实现完全隐藏跳过测试的输出,有两种生效方式:

  • 临时在命令行参数中配置,直接修改你的package.json脚本:
"smoketest": "jest -t \"^(?=.*@HappyPath).*\" src/tests/ --reporters=\"default\" --reporter-options=\"hideSkippedTests=true\""
  • 在Jest配置文件中全局生效(以jest.config.js为例):
module.exports = {
  // 保留你原有其他配置
  reporters: [
    ["default", {
      hideSkippedTests: true
    }]
  ]
}

用例级别的测试打标方案

不需要依赖文件级分组的第三方工具,两种方案可实现用例粒度的分组:

  1. 保留现有t参数正则匹配方案:配合上面的hideSkippedTests配置即可达到你要的效果,测试名称带@HappyPath的用例会正常运行,其余用例不会出现在报告中。
  2. 更精准的自定义标签方案:避免正则误匹配,且不匹配的用例不会被Jest识别为跳过项,完全不进入报告统计:
  • 首先封装自定义测试函数,可放在全局测试前置文件或者每个测试文件顶部:
const testWithTags = (tags, testName, testFn, timeout) => {
  // 冒烟测试模式下仅运行带@HappyPath标签的用例
  if (process.env.SMOKE_TEST && !tags.includes('@HappyPath')) return
  test(testName, testFn, timeout)
}
  • 测试用例写法示例:
// 冒烟测试用例
testWithTags(['@HappyPath'], '正常登录流程验证', () => {
  expect(login('validUser', 'validPwd')).toBe(true)
})

// 异常场景用例,冒烟测试时不会被加载
testWithTags(['@Exception'], '密码错误场景验证', () => {
  expect(login('validUser', 'wrongPwd')).toBe(false)
})
  • 对应修改package.json的smoketest脚本(Windows环境需提前安装cross-env保证环境变量跨平台生效):
"smoketest": "cross-env SMOKE_TEST=true jest src/tests/"

内容的提问来源于stack exchange,提问作者Toma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:27:03