如何使用junit 5获取测试失败的屏幕截图

时间:2016-11-07 09:51:03

标签: junit junit5

有人可以告诉我:当测试方法失败时如何截取屏幕截图(jUnit 5)。我有一个基础测试类,其中包含BeforeEachAfterEach方法。使用@Test方法的任何其他类都扩展了基类。

2 个答案:

答案 0 :(得分:1)

嗯,可以编写截取屏幕截图的java代码,例如here

但我非常想知道你试图以这种方式解决的真正问题。我不确定你是否已经想到了,但JUnit的主要意图是为你提供一个在各种环境中运行测试的框架。

当然,您可以在IDE中运行JUnit,也许您会发现获取屏幕截图很有帮助。但是:“通常”单元测试也会在夜间构建期间运行 - 例如,在“截取屏幕截图”可能不会使任何感觉的环境中运行!

除此之外:screenshorts是一种极其无效的收集信息的方式!当您遇到失败时,您应该锁定 textual 日志文件,html / xml报告等等。您希望失败的测试生成易于消化的信息。

所以,这里真正的答案是:退出你现在正在做的事情,并重新考虑非实际想要解决的问题的非截图解决方案!

答案 1 :(得分:1)

您不需要为JUnit测试错误/通过拍摄屏幕截图,而建议的方法是自动使用生成各种报告(测试通过/失败报告,代码覆盖率报告,代码复杂性报告等)。以下工具/插件。

您可以使用 Cobertura maven插件 Sonarqube代码质量工具,以便这些工具自动为您生成报告。

您可以查看here Cobertura-maven-plugin here获取 Sonarqube 了解详情。

您需要将这些工具与CI(持续集成)环境集成,并确保如果代码未通过某些质量(在测试覆盖率,代码复杂性等方面......),那么项目构建(战争/耳朵)应自动失败。