AssertJ SoftAssertions:如何在收集到 AssertionError 后执行自定义代码?

AssertJ SoftAssertions: how to execute custom code after an AssertionError is collected?

问题:我想将 TestNG 断言从 AssertJ 更改为 AssertJ 和 SoftAssertions,但我不知道我究竟需要从 SoftAssertions 覆盖什么才能在 AssertionError 已收藏。具体来说,我想获取每个收集到的错误的屏幕截图。我将 Selenium 用于自动化,需要添加屏幕截图以进行报告。 我试图覆盖 AbstractSoftAssertions 中的每个 fail 方法,但没有帮助。

实际:我只在@After方法中获得了屏幕截图。

预期:我需要获取每个软断言错误的屏幕截图。

当前设置是 Java、TestNG、Selenium 和 Allure 报告。

有两种选择:

这两种方式都允许您提供自己的逻辑以针对每个断言错误执行。

您可以在 AssertJ documentation.

中找到有关这两种解决方案的示例