跳至内容 跳至搜索

系统测试的截图助手。

方法
T

实例公有方法

take_failed_screenshot()

如果测试失败,则对浏览器中的当前页面进行截图。

take_failed_screenshot 在系统测试拆卸期间被调用。

# File actionpack/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb, line 53
def take_failed_screenshot
  return unless failed? && supports_screenshot? && Capybara::Session.instance_created?

  take_screenshot
  metadata[:failure_screenshot_path] = relative_image_path if Minitest::Runnable.method_defined?(:metadata)
end

take_screenshot(html: false, screenshot: nil)

对浏览器中的当前页面进行截图。

take_screenshot 可以用在系统测试中的任何地方,以对当前状态进行截图。这对调试或自动化视觉测试很有用。您可以在每次测试中拍摄多个截图,以调查测试期间不同阶段的变化。这些截图将使用顺序前缀命名(或者对于失败的测试则命名为“failed”)。

默认的截图目录是 tmp/screenshots,但是您可以使用 Capybara.save_path 设置不同的目录。

您可以使用 html 参数或设置 RAILS_SYSTEM_TESTING_SCREENSHOT_HTML 环境变量来保存正在截图的页面的 HTML,以便您调查截图时页面上的元素。

您可以使用 screenshot 参数或设置 RAILS_SYSTEM_TESTING_SCREENSHOT 环境变量来控制输出。可能的值是:simple(默认):仅显示截图路径。这是默认值。

`inline`

:使用 iTerm 图像协议在终端中显示截图(iterm2.com/documentation-images.html)。

`artifact`

:在终端中显示截图,使用终端工件格式(buildkite.github.io/terminal-to-html/inline-images/)。

# File actionpack/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb, line 41
def take_screenshot(html: false, screenshot: nil)
  showing_html = html || html_from_env?

  increment_unique
  save_html if showing_html
  save_image
  show display_image(html: showing_html, screenshot_output: screenshot)
end