【发布时间】:2018-07-01 11:24:18
【问题描述】:
每当任何jest 测试失败时,我都想运行function / task。不是用 try / catch 包装我的所有测试或添加 if 检查,有没有办法可以利用 afterEach ?
如果测试失败,那么我希望它失败,只需运行一个单独的函数。
例如:
test('nav loads correctly', async () => {
const listItems = await page.$$('[data-testid="navBarLi"]')
expect(listItems.length).toBe(4)
if (listItems.length !== 4)
await page.screenshot({path: 'screenshot.png'})
})
这是在添加一个 if 检查...但我希望对我的所有测试都更加健壮。
【问题讨论】:
-
这个函数的目的是什么?它会记录失败吗?
-
基本上我想在测试失败时截屏..(我正在使用google的puppeteer)。如果 AfterEach 可以访问当前测试,它将工作。检查它是通过还是失败。但看起来这不是内置在github.com/facebook/jest/issues/5292
-
我能想到的另一个选项是实现reporter(除了默认的)。
-
github.com/smooth-code/jest-puppeteer/issues/43 中讨论了一些解决方法。 jest-screenshot-reporter 听起来也正是你所需要的
标签: javascript testing jestjs puppeteer