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 报告。
有两种选择:
- 调用
setAfterAssertionErrorCollected
on your SoftAssertions
instance, providing your own AfterAssertionErrorCollected
实现(可以是 lambda)。
- 扩展
AbstractSoftAssertions
并覆盖 onAssertionErrorCollected
。
这两种方式都允许您提供自己的逻辑以针对每个断言错误执行。
您可以在 AssertJ documentation.
中找到有关这两种解决方案的示例
问题:我想将 TestNG 断言从 AssertJ 更改为 AssertJ 和 SoftAssertions,但我不知道我究竟需要从 SoftAssertions 覆盖什么才能在 AssertionError
已收藏。具体来说,我想获取每个收集到的错误的屏幕截图。我将 Selenium 用于自动化,需要添加屏幕截图以进行报告。
我试图覆盖 AbstractSoftAssertions
中的每个 fail
方法,但没有帮助。
实际:我只在@After
方法中获得了屏幕截图。
预期:我需要获取每个软断言错误的屏幕截图。
当前设置是 Java、TestNG、Selenium 和 Allure 报告。
有两种选择:
- 调用
setAfterAssertionErrorCollected
on yourSoftAssertions
instance, providing your ownAfterAssertionErrorCollected
实现(可以是 lambda)。 - 扩展
AbstractSoftAssertions
并覆盖onAssertionErrorCollected
。
这两种方式都允许您提供自己的逻辑以针对每个断言错误执行。
您可以在 AssertJ documentation.
中找到有关这两种解决方案的示例