Что такое хорошая схема для именования скриншотов в Selena Webdriver + Capyabara - PullRequest
0 голосов
/ 13 апреля 2019

Первый проход: я называю свой скриншот "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

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Методы определения теста RSpec и хуки (scenario, before, after и т. Д.) Получают необязательный параметр, который является самим тестовым примером.Это позволяет получить описание теста и т. Д. Для использования в именовании вашего файла

scenario "my test" do |example|
  ...
  page.save_screenshot("#{example.full_description}.png")
end

Очевидно, что вы можете преобразовать описание любым удобным вам способом (преобразовать пробелы в подчеркивания и т. Д.).

Примечание: вы также можете посмотреть Capybara.save_path, в котором указано, в каких каталогах хранятся снимки экрана, если вы не хотите добавлять screenshots/ везде.

0 голосов
/ 13 апреля 2019

Как насчет этого?

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
...