第一遍:我将屏幕截图命名为“ x”。
很明显,最小设置仅允许1张屏幕截图
我想以一种独特的方式命名屏幕截图,并同时反映其用法。
我可以使用以下方式使文件名相当唯一
output_directory = 'screenshots'
time = Time.new
page.save_screenshot("#{output_directory}/#{time}.png")
有点难看,但我明白了
$ ls screenshots/
'019-04-13 07:07:50 -0400.png''
可以使用既符合唯一性又符合描述性要求的良好格式。我可以以某种方式包括方案说明吗?
我怎么会得到这样的东西:
scenario_decsription_2019_04_19-08_55_20
答案 0 :(得分:1)
RSpec测试定义方法和挂钩(scenario
,before
,after
等)都接收一个可选参数,该参数是测试示例本身。这样,您就可以获取测试的说明等,以用于命名文件
scenario "my test" do |example|
...
page.save_screenshot("#{example.full_description}.png")
end
很显然,您可以按照需要的方式转换说明(将空格转换为下划线等)。
注意:如果您不想到处都Capybara.save_path
,您可能还想看看screenshots/
,它指定了存储屏幕快照的目录。
答案 1 :(得分:0)
这样的事情怎么样?
scenario "#{scenario = 'user_clicks_the_dropdown'}" do
output_directory = 'screenshots'
time = Time.new
suffix = time.to_s(:db).gsub(/[\:\.\_\s]/,'_')
page.save_screenshot("#{output_directory}/#{scenario}_#{suffix}.png")
end