没有覆盖设置的“由于覆盖阈值违规”开玩笑失败

Posted

技术标签:

【中文标题】没有覆盖设置的“由于覆盖阈值违规”开玩笑失败【英文标题】:Jest failing "due to coverage threshold breaches" w/o coverage settings 【发布时间】:2020-01-12 14:44:15 【问题描述】:

在我的devDependencies 中升级了几个包后,我的 Jest 测试由于违反阈值而失败,而没有 coverage 设置。

如果我运行gulp-jest,它们会失败

Error in plugin "gulp-jest"
Message:
    Tests Failed due to coverage threshold breaches

运行yarn run jest,错误只是

error Command failed with exit code 1.

后者似乎与yarn test: all tests passed but returned "error Command failed with exit code 1" 一致,原因也是覆盖率阈值。

奇怪的是我的阈值已经设置为 0。现在我已经从 gulpfile 中删除了所有 coverage 设置,但仍然失败。

package.json 我找不到任何其他设置。我错过了位置吗?

我的版本是

节点 LTS 10.16.3 开玩笑 22.4.4 gulp-jest 4.0.3

【问题讨论】:

我刚刚尝试了我的 monorepo 的另一个包,我注意到testMatch 设置也不是gulpfile 中设置的。 帮助中心定义“编程问题”也是关于开发工具的。我不明白反对票。 我发现我的package.json 在配置对象中有一个无用的config 键。虽然这改变了大多数包中的玩笑行为,但我仍然有一个包由于阈值违规而仍然失败。 投反对票的人会介意用我的问题解释他们的问题吗?我想遵循指南并阅读它们,但不知道出了什么问题。非常感谢。 【参考方案1】:

对于因违反阈值而失败的测试(即使未定义阈值),我们能够通过删除快照文件 *.test.js.snap 来修复它。

这很奇怪,而且错误信息非常具有误导性。

此外,我们在 gulp-jest 的配置对象中有一个额外的 config 键:

jest(config: …

这似乎已在某些版本中被删除。

【讨论】:

以上是关于没有覆盖设置的“由于覆盖阈值违规”开玩笑失败的主要内容,如果未能解决你的问题,请参考以下文章

如果 JUnit 覆盖率低于某个阈值,如何使 Maven 构建失败

Jacoco Gradle 中的最小代码覆盖率阈值

开玩笑 - spyOn 没有代码覆盖实际实现

即使未达到测试覆盖率阈值,Karma-coverage 退出代码也始终为 0

如何从终端中的谷歌测试套件获得c ++代码超额?

有没有办法从业力覆盖文本报告器结果中排除所有 100% 或阈值的文件?