0

テストで、失敗したすべてのシナリオのスクリーン ショットを保存したいと考えています。

この質問について、「 Watir-webdriver: すべての失敗したシナリオで同じスクリーンショット画像を取得する」という良い投稿を見つけました。ジャスティンが提案したコードを env.rb に入れましたが、うまくいきません。Cucumber を使用していないためかどうかはわかりません。

私が持っている典型的なテストケースの例を考えると:

require "rubygems"
require "test/unit"
require "watir-webdriver"
require "page-object"
require "./home_page"


class LogInTest < Test::Unit::TestCase
  # Called before every test method runs. Can be used
  # to set up fixture information.
  def setup
    @browser ||= Watir::Browser.new :firefox
  end

  # Called after every test method runs. Can be used to tear
  # down fixture information.

  def teardown
    @browser.close
  end

  # Fake test
  def test_fail
    @home_page = HomePage.new(@browser)
    @home_page.visit
    @log_in_page = @home_page.go_to_log_in
    @all_deals = @log_in_page.log_in("test_user","test_pass")
    assert @browser.title.include? "- hello world"
  end
end

失敗したテストのすべてのスクリーンショットをターゲット フォルダーに保存する一般的な方法を作成するにはどうすればよいですか?

どうぞよろしくお願いいたします。

4

1 に答える 1

1

あなたが参照した質問は、Cucumber 用に書かれたものであるため、機能しないことは間違いありません。ただし、同じことが Test::Unit に適用できます。

次のように切り替えてみてくださいteardown:

def teardown
  #Save image if test fails
  unless passed?
    #Where to save the image and the file name
    screenshot_file = "screenshot-#{Time.now.strftime('%Y%m%d-%H%M%S')}.png"

    #Save the image
    @browser.driver.save_screenshot(screenshot_file)
  end

  #Close the browser
  @browser.close
end
于 2013-10-20T19:55:59.220 に答える