1

iOSネイティブアプリでテストを行うためにひょうたんを使用しています。ひょうたんはスクリーンショットを撮り、シナリオが失敗したときにそれを screenshot_0 という名前でプロジェクト ディレクトリに保存します。スクリーンショットのパスを変更する方法とファイルの名前を変更する方法を知りたいです。

私は以下を使用しました:

dir_path = "/Users/bmw/Desktop/Calabash/screenshots "
unless Dir.exist?(dir_path)
    Dir.mkdir(dir_path,0777)
    puts "=========Directory is created at #{dir_path}"
else
    puts "=========Directory already exists at #{dir_path}"
end

#Run after each scenario
After do |scenario|
  #Check, scenario is failed?
  if(scenario.failed?)
         time = Time.now.strftime('%Y_%m_%d_%Y_%H_%M_%S_')
         name_of_scenario = time + scenario.name.gsub(/\s+/, "_").gsub("/","_")
         puts "Name of snapshot is #{name_of_scenario}"
         file_path = File.expand_path(dir_path)+'/'+name_of_scenario +'.png'
         page.driver.simulator.save_screenshot file_path
         puts "Snapshot is taken"
    puts "#===========================================================#"
    puts "Scenario:: #{scenario.name}"
    puts "#===========================================================#"
  end
end

page.driver.browser,simulator.save_screenshot をどこかで見たことがあります...ブラウザをシミュレータに置き換えましたが、機能しませんでした...ios sim が failure_helpers に触れずにシミュレータを保存する場所を変更する方法はありますか?

4

1 に答える 1

1

スクリーンショットを保存するパスを設定するために使用できる名前付きの Calabash エクスポーズと環境変数。SCREENSHOT_PATH

screenshotファイル名については、 APIを使用してみてください。あなたのコメントを読むと、すでに試したようですが、適切な署名を使用していない可能性があります。

ソースscreenshotを見ると、次のように定義されていることがわかります。

def screenshot(options={:prefix => nil, :name => nil})
  ...

ご覧のとおり、マップを期待しているので、試してみるべきことは

screenshot({:name => name_of_scenario })

screenshot_embedまた、ドキュメンテーションには、 の使用が の使用に適していると記載されていることに注意してくださいscreenshot

于 2015-03-09T11:06:03.907 に答える