module RSpec::SimpleCov::Setup
Public Class Methods
build_contexts_and_example( coverage, configuration )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 35 def build_contexts_and_example( coverage, configuration ) remove_location_from_reserver_keys coverage.example_group = RSpec.describe( configuration.described_thing, location: 'spec_helper_spec.rb') coverage.example_context = coverage.example_group.context configuration.context_text coverage.example = build_example( coverage.example_context, configuration ) reinstate_location_in_reserved_keys end
build_example( context, configuration )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 25 def build_example( context, configuration ) context.it configuration.test_case_text do result = configuration.described_thing.result minimum_coverage = configuration.described_thing.minimum_coverage configuration.described_thing.running = true expect( result.covered_percent ).to be >= minimum_coverage end end
do( configuration )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 90 def do( configuration ) RSpec.configure do |config| config.after(:suite) do Setup.setup_execute_and_analyse_coverage_example( configuration ) end end end
evaluate_and_report_result( example )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 64 def evaluate_and_report_result( example ) passed = example.execution_result.status == :passed failed = !passed RSpec.configuration.reporter.example_failed example if failed RSpec.configuration.reporter.example_passed example if passed end
fix_example_backtrace( example, backtrace )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 58 def fix_example_backtrace( example, backtrace ) return unless example.execution_result.exception example.execution_result.exception.backtrace.push( *backtrace ) end
mark_contexts_as_finished( coverage )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 72 def mark_contexts_as_finished( coverage ) RSpec.configuration.reporter.example_group_finished coverage.example_context RSpec.configuration.reporter.example_group_finished coverage.example_group end
reinstate_location_in_reserved_keys()
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 21 def reinstate_location_in_reserved_keys RSpec::Core::Metadata::RESERVED_KEYS.push(:location) end
remove_location_from_reserver_keys()
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 17 def remove_location_from_reserver_keys RSpec::Core::Metadata::RESERVED_KEYS.delete(:location) end
reset_example_group_paths( example_group, path )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 52 def reset_example_group_paths( example_group, path ) example_group.metadata[ :absolute_file_path ] = path example_group.metadata[ :rerun_file_path ] = path example_group.metadata[ :file_path ] = path end
run_example( coverage )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 45 def run_example( coverage ) RSpec.configuration.reporter.example_group_started coverage.example_group RSpec.configuration.reporter.example_group_started coverage.example_context RSpec.configuration.reporter.example_started coverage.example coverage.example_group.run end
setup_execute_and_analyse_coverage_example( configuration )
click to toggle source
# File lib/rspec/simplecov/setup.rb, line 77 def setup_execute_and_analyse_coverage_example( configuration ) include RSpec::SimpleCov coverage = Container.new Setup.build_contexts_and_example( coverage, configuration ) Setup.run_example( coverage ) Setup.reset_example_group_paths( coverage.example_group, configuration.caller_path ) Setup.fix_example_backtrace( coverage.example, configuration.backtrace ) Setup.evaluate_and_report_result( coverage.example ) Setup.mark_contexts_as_finished( coverage ) end