class Allure::FileWriter

Allure result file writer

Constants

ATTACHMENT_FILE_SUFFIX

@return [String] attachment file suffix

CATEGORIES_FILE

@return [String] categories definition json

ENVIRONMENT_FILE

@return [String] environment info file

TEST_RESULT_CONTAINER_SUFFIX

@return [String] test result container suffix

TEST_RESULT_SUFFIX

@return [String] test result suffix

Attributes

results_directory[R]

Public Class Methods

new(results_directory) click to toggle source

File writer instance

@param [String] results_directory

# File lib/allure_ruby_commons/file_writer.rb, line 20
def initialize(results_directory)
  @results_directory = results_directory
end

Public Instance Methods

write_attachment(source, attachment) click to toggle source

Write allure attachment file @param [File, String] source File or string of attachment to save @param [Allure::Attachment] attachment @return [void]

# File lib/allure_ruby_commons/file_writer.rb, line 42
def write_attachment(source, attachment)
  source.is_a?(File) ? copy(source.path, attachment.source) : write(attachment.source, source)
end
write_categories(categories) click to toggle source

Write categories info @param [File, Array<Allure::Category>] categories @return [void]

# File lib/allure_ruby_commons/file_writer.rb, line 58
def write_categories(categories)
  if categories.is_a?(File)
    copy(categories.path, CATEGORIES_FILE)
  else
    write(CATEGORIES_FILE, Oj.dump(categories))
  end
end
write_environment(environment) click to toggle source

Write allure report environment info @param [Hash<Symbol, String>] environment @return [void]

# File lib/allure_ruby_commons/file_writer.rb, line 49
def write_environment(environment)
  environment.reduce("") { |e, (k, v)| e + "#{k}=#{v}\n" }.tap do |env|
    write(ENVIRONMENT_FILE, env)
  end
end
write_test_result(test_result) click to toggle source

Write test result @param [Allure::TestResult] test_result @return [void]

# File lib/allure_ruby_commons/file_writer.rb, line 27
def write_test_result(test_result)
  write("#{test_result.uuid}#{TEST_RESULT_SUFFIX}", Oj.dump(test_result))
end
write_test_result_container(test_container_result) click to toggle source

Write test result container @param [Allure::TestResultContainer] test_container_result @return [void]

# File lib/allure_ruby_commons/file_writer.rb, line 34
def write_test_result_container(test_container_result)
  write("#{test_container_result.uuid}#{TEST_RESULT_CONTAINER_SUFFIX}", Oj.dump(test_container_result))
end

Private Instance Methods

copy(from, to) click to toggle source
# File lib/allure_ruby_commons/file_writer.rb, line 79
def copy(from, to)
  FileUtils.cp(from, File.join(output_dir, to))
end
output_dir() click to toggle source
# File lib/allure_ruby_commons/file_writer.rb, line 70
def output_dir
  @output_dir ||= FileUtils.mkpath(results_directory).first
end
write(name, source) click to toggle source
# File lib/allure_ruby_commons/file_writer.rb, line 74
def write(name, source)
  filename = File.join(output_dir, name)
  File.open(filename, "w") { |file| file.write(source) }
end