Sha256: 45451f47e1e6af5cfbfe1dd7eecde58fb2dfa63480902922737a04b8781b4ada
Contents?: true
Size: 1.83 KB
Versions: 2
Compression:
Stored size: 1.83 KB
Contents
# = rspec_result_parser.rb # # @author Rodrigo Fernández # # == Clase RspecResultParser module Liri module Common module UnitTest # Esta clase parsea texto de resultado en rspec a volores numéricos class RspecResultParser class << self def finish_in_values(finish_in_line) values = finish_in_line.to_s.match(/Finished in (.+)\(files took (.+) to load\)/) finish_in_text = values[1] files_load_text = values[2] { finish_in: text_value_to_seconds(finish_in_text), files_load: text_value_to_seconds(files_load_text) } end def finished_summary_values(finished_summary_line) values = finished_summary_line.to_s.match(/(.+) examples*, (.+) failures*,*\s*(\d*)/) examples = values[1] failures = values[2] pending = values[3].empty? ? '0' : values[3] { examples: examples.to_i, failures: failures.to_i, pending: pending.to_i } end # Received string like this "rspec ./spec/failed_spec.rb:4 # Liri debería fallar a propósito" and # return string like this "/spec/failed_spec.rb:4" # or for "rspec ./spec/system/management/budget_investments_spec.rb[1:3:1:3] # Budget Investments behaves like mappable At new_management_budget_investment_path Should create budget_investment with map" # return "/spec/system/management/budget_investments_spec.rb[1:3:1:3]" def failed_example(failed_example_line) values = failed_example_line.to_s.match(/(\/.+.rb:\d+)/) values ||= failed_example_line.to_s.match(/(\/.+.rb.*\])/) values[1] # failed_example end private def text_value_to_seconds(text) TextTimeParser.to_seconds(text) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
liri-0.4.1 | lib/common/unit_test/rspec_result_parser.rb |
liri-0.4.0 | lib/common/unit_test/rspec_result_parser.rb |