cucumber-calabash android - 停止在每个 html 结果中覆盖屏幕截图
cucumber-calabash android - stop screenshots being overwritten in each html result
问题:每个设备的结果 html 文件中的屏幕截图被覆盖
场景:我正在 运行ning calabash-android 测试单个移动应用程序 运行ning 在多个设备上。
SCREENSHOT_PATH环境变量设置为c:/AndroidApp/Results/deviceScreenshots/
此位置将存储截取的所有屏幕截图。
在批处理文件中指定输出格式html,输出位置为C:\AndroidApp\Results\device1\deviceId
对于多个设备,我们为每个设备单独占一行,因此设备 1、设备 2 等等……等等。
当我完成 运行 并检查每台设备的屏幕截图时,我发现屏幕截图正在被覆盖,它们是从环境变量位置获取的。
例:环境变量文件夹有10张截图
设备 1 已截取 10 个屏幕截图
设备 2 已截取 10 个屏幕截图
设备 2 包含与设备 1 相同的 10 个屏幕截图,因为环境变量文件夹的图像名称是 screenshot1.png、screenshot2.png 等等
我已经为每个设备指定了一个唯一的设备文件夹html 结果输出,所以我们确实有唯一的结果文件,但是截图正在被覆盖,因为是从环境变量文件夹中获取的。
有什么想法吗?谢谢大家
格雷姆
再次阅读您的问题我可以看到您确实设置了路径,但是您对两个 运行 使用相同的路径?如果那是你所做的以及你想如何去做。我的第二个选项可能最适合你(根据设备为屏幕截图添加前缀)。
执行测试时可以设置截图路径
SCREENSHOT_PATH=/tmp/foo/ calabash-android run
Link 到 Github 关于它 https://github.com/calabash/calabash-android
因此您可以将屏幕截图放在不同的文件夹中。
或者,您可以根据测试 运行 所在的设备为截取的屏幕截图添加前缀。喜欢
screenshot({:prefix => "/tmp", :name=>"my.png"})
Link 到 Github https://github.com/calabash/calabash-android/blob/master/documentation/ruby_api.md
我们尝试了一种不同的方法,即在屏幕截图名称后附加时间日期戳,而不是使用增量整数计数器。
将以下代码行添加到 operations.rb 文件。 (不是 failureHelpers.rb)以特定格式将日期存储到 t1 变量,并将该 t1 变量输出到前缀。
@@t1 = DateTime.now.strftime("%Y%m%dT%H%M%S%3N")
path = "#{prefix}#{name}_#{@@t1}.png"
operations.rb 的代码片段现在是:
def screenshot(options={:prefix => nil, :name => nil})
prefix = options[:prefix] || ENV['SCREENSHOT_PATH'] || ""
name = options[:name]
if name.nil?
name = "screenshot"
else
if File.extname(name).downcase == ".png"
name = name.split(".png")[0]
end
end
@@t1 = DateTime.now.strftime("%Y%m%dT%H%M%S%3N")
path = "#{prefix}#{name}_#{@@t1}.png"
希望这会有所帮助,它不是原始问题的解决方案,只是对问题的重新思考的解决方案..呸...
无论如何,谢谢大家的贡献,确实很有趣。
感谢我的同事测试人员,他的工作真的不是我的。
问题:每个设备的结果 html 文件中的屏幕截图被覆盖
场景:我正在 运行ning calabash-android 测试单个移动应用程序 运行ning 在多个设备上。
SCREENSHOT_PATH环境变量设置为c:/AndroidApp/Results/deviceScreenshots/
此位置将存储截取的所有屏幕截图。
在批处理文件中指定输出格式html,输出位置为C:\AndroidApp\Results\device1\deviceId
对于多个设备,我们为每个设备单独占一行,因此设备 1、设备 2 等等……等等。
当我完成 运行 并检查每台设备的屏幕截图时,我发现屏幕截图正在被覆盖,它们是从环境变量位置获取的。
例:环境变量文件夹有10张截图
设备 1 已截取 10 个屏幕截图 设备 2 已截取 10 个屏幕截图
设备 2 包含与设备 1 相同的 10 个屏幕截图,因为环境变量文件夹的图像名称是 screenshot1.png、screenshot2.png 等等
我已经为每个设备指定了一个唯一的设备文件夹html 结果输出,所以我们确实有唯一的结果文件,但是截图正在被覆盖,因为是从环境变量文件夹中获取的。
有什么想法吗?谢谢大家
格雷姆
再次阅读您的问题我可以看到您确实设置了路径,但是您对两个 运行 使用相同的路径?如果那是你所做的以及你想如何去做。我的第二个选项可能最适合你(根据设备为屏幕截图添加前缀)。
执行测试时可以设置截图路径
SCREENSHOT_PATH=/tmp/foo/ calabash-android run
Link 到 Github 关于它 https://github.com/calabash/calabash-android
因此您可以将屏幕截图放在不同的文件夹中。 或者,您可以根据测试 运行 所在的设备为截取的屏幕截图添加前缀。喜欢
screenshot({:prefix => "/tmp", :name=>"my.png"})
Link 到 Github https://github.com/calabash/calabash-android/blob/master/documentation/ruby_api.md
我们尝试了一种不同的方法,即在屏幕截图名称后附加时间日期戳,而不是使用增量整数计数器。
将以下代码行添加到 operations.rb 文件。 (不是 failureHelpers.rb)以特定格式将日期存储到 t1 变量,并将该 t1 变量输出到前缀。
@@t1 = DateTime.now.strftime("%Y%m%dT%H%M%S%3N")
path = "#{prefix}#{name}_#{@@t1}.png"
operations.rb 的代码片段现在是:
def screenshot(options={:prefix => nil, :name => nil})
prefix = options[:prefix] || ENV['SCREENSHOT_PATH'] || ""
name = options[:name]
if name.nil?
name = "screenshot"
else
if File.extname(name).downcase == ".png"
name = name.split(".png")[0]
end
end
@@t1 = DateTime.now.strftime("%Y%m%dT%H%M%S%3N")
path = "#{prefix}#{name}_#{@@t1}.png"
希望这会有所帮助,它不是原始问题的解决方案,只是对问题的重新思考的解决方案..呸...
无论如何,谢谢大家的贡献,确实很有趣。
感谢我的同事测试人员,他的工作真的不是我的。