如果Jest JS测试的名称太长或包含某些字符,如何使其失败?

mwyxok5s  于 2023-11-15  发布在  Jest
关注(0)|答案(1)|浏览(109)

作为CI/CD管道的一部分,我们有一些工具来处理Jest输出。
其中一个工具对测试名称有一些严格的规则,例如长度必须低于255个字符,并且没有特殊字符。在某些情况下,例如使用it.each(),很容易在没有意识到的情况下构造可能违反这些条件的测试名称。下游工具然后通过日志消息拒绝此类测试,如果你知道你在寻找什么.
我们不太可能让工具改变他们的方法,所以我想在测试管道中尽早停止这一点。我知道我可以对报告器输出进行一些处理,但是我想知道是否有一种方法可以让测试本身失败,这样开发人员就可以非常清楚地知道问题在哪里。tested在概念上有点灰色,但在可用性方面对我们来说有优势。
我在Jest文档中找不到任何明显的方法来做这件事,但可能错过了一些东西。有没有什么方法可以在Jest本身中完成这件事?或者它必须作为报告后处理来完成?

qgzx9mmu

qgzx9mmu1#

我通过使用setupFilesAfterEnv配置属性和以下代码解决了这个问题:

beforeEach(() => {
  expect(expect.getState().currentTestName).toMatch(/^[^&<>]{10,255}$/)
})

字符串
它可以很好地解决我的问题,并且可以在我们的代码结构中始终如一地应用。

相关问题