Ответ 1
Почему бы не использовать try/catch?
Если вам не нравится, как это выглядит, вы можете скрыть уродство в функции:
function runAssertion(assertion, onFailure) {
try {
assertion();
} catch (exception) {
onFailure();
throw exception;
}
}
Тогда назови это так:
test('nav loads correctly', async () => {
const listItems = await page.$$('[data-testid="navBarLi"]')
runAssertion(
() => { expect(listItems.length).toBe(4) },
() => { await page.screenshot({path: 'screenshot.png'}) }
)
})
Это подход нашей команды, чтобы избежать повселокального использования try/catch.