Sha256: 9c496231fde3361cf7cd2ceb0066b2fc504142ef2184c356849fb805af09a64f
Contents?: true
Size: 1.84 KB
Versions: 2
Compression:
Stored size: 1.84 KB
Contents
# ========================================================================= # Ceedling - Test-Centered Build System for C # ThrowTheSwitch.org # Copyright (c) 2010-25 Mike Karlesky, Mark VanderVoord, & Greg Williams # SPDX-License-Identifier: MIT # ========================================================================= require 'json' require 'tests_reporter' class JsonTestsReporter < TestsReporter def setup() super( default_filename: 'tests_report.json' ) end def body(results:, stream:) hash = { "FailedTests" => write_failures( results[:failures] ), "PassedTests" => write_tests( results[:successes] ), "IgnoredTests" => write_tests( results[:ignores] ), "Summary" => write_statistics( results[:counts] ) } stream << JSON.pretty_generate(hash) end ### Private private def write_failures(results) # Array of hashes relating a source file, test, and test failure failures = [] results.each do |result| result[:collection].each do |item| failures << { "file" => result[:source][:file], "test" => item[:test], "line" => item[:line], "message" => item[:message] } end end return failures.uniq end def write_tests(results) # Array of hashes relating a source file and test successes = [] results.each do |result| result[:collection].each do |item| successes << { "file" => result[:source][:file], "test" => item[:test] } end end return successes end def write_statistics(counts) # Hash of keys:values for statistics return { "total_tests" => counts[:total], "passed" => (counts[:total] - counts[:ignored] - counts[:failed]), "ignored" => counts[:ignored], "failures" => counts[:failed] } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ceedling-1.0.1 | plugins/report_tests_log_factory/lib/json_tests_reporter.rb |
ceedling-1.0.0 | plugins/report_tests_log_factory/lib/json_tests_reporter.rb |