我正在使用硒为我的黄瓜测试截屏。我希望我的步骤之一是将屏幕截图文件放置在一个文件夹中,该文件夹的名称是使用来自步骤 + 时间戳的输入生成的。
这是我到目前为止所取得的成就:
Then /^screen shots are placed in the folder "(.*)"$/ do |folder_name|
time = Time.now.strftime("%Y%m%d%H%M%S")
source ="screen_shots"
destination = "screen_shots\_#{folder_name}_#{time}"
if !Dir.exists? destination
Dir.new destination
end
Dir.glob(File.join(source, '*')).each do |file|
if File.exists? (file)
File.move file, File.join(destination, File.basename(file))
end
end
end
如果目录不存在,我想创建它。然后我想将所有屏幕截图放入新目录中。
该文件夹将创建在与屏幕截图相同的目录中,然后将所有屏幕截图文件移动到该文件夹中。我仍在学习 ruby,而我尝试将其组合在一起的尝试根本没有成功:
Desktop > cucumber_project_folder > screenshots_folder > shot1.png, shot2.png
简而言之,我想在其中创建一个新目录并screenshots
移动到其中。我该怎么做?shot1.png
shot2.png
根据给出的答案,这是解决方案(用于黄瓜)
Then /^screen shots are placed in the folder "(.*)" contained in "(.*)"$/ do |folder_name, source_path|
date_time = Time.now.strftime('%m-%d-%Y %H:%M:%S')
source = Pathname.new(source_path)
destination = source + "#{folder_name}_#{date_time}"
destination.mkdir unless destination.exist?
files = source.children.find_all { |f| f.file? and f.fnmatch?('*.png') }
FileUtils.move(files, destination)
end
源路径在步骤中指示,因此不同的用户不必修改定义。