【问题标题】:How to take screenshot on test failure with junit 5如何使用junit 5截取测试失败的屏幕截图
【发布时间】:2016-11-07 19:02:30
【问题描述】:

谁能告诉我:当测试方法失败时如何截屏(jUnit 5)。我有一个带有BeforeEach 和AfterEach 方法的基本测试类。任何其他具有@Test 方法的类都扩展了基类。

【问题讨论】:

  • 为什么要截屏?究竟是什么?

标签: junit junit5


【解决方案1】:

好吧,可以编写截取屏幕截图的 java 代码,例如参见 here。

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

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

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

所以,这里真正的答案是:从你现在正在做的事情中退后一步,重新考虑你真正想要解决的问题的非屏幕截图解决方案!

【讨论】:

  • 嗨!感谢您的回答!但我正在使用这个框架和 appium 并在 ios 真实设备上运行测试。制作屏幕截图以查看问题所在会很有用。
  • 使用 JUnit + Selenium 进行 E2E 测试时,同时拥有文本信息和屏幕截图非常有用。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-09-07
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多