Module: AppMap::Minitest
- Defined in:
- lib/appmap/minitest.rb
Overview
Integration of AppMap with Minitest. When enabled with APPMAP=true, the AppMap tracer will be activated around each test.
Defined Under Namespace
Classes: Recording
Constant Summary collapse
- APPMAP_OUTPUT_DIR =
'tmp/appmap/minitest'- LOG =
(ENV['APPMAP_DEBUG'] == 'true' || ENV['DEBUG'] == 'true')
Class Method Summary collapse
- .add_event_methods(event_methods) ⇒ Object
- .begin_test(test, name) ⇒ Object
- .config ⇒ Object
- .enabled? ⇒ Boolean
- .end_test(test, exception:) ⇒ Object
- .first_recording? ⇒ Boolean
- .init ⇒ Object
- .metadata ⇒ Object
- .run ⇒ Object
- .save(name:, class_map:, source_location:, test_status:, test_failure:, exception:, events:) ⇒ Object
Class Method Details
.add_event_methods(event_methods) ⇒ Object
102 103 104 |
# File 'lib/appmap/minitest.rb', line 102 def add_event_methods(event_methods) @event_methods += event_methods end |
.begin_test(test, name) ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/appmap/minitest.rb', line 83 def begin_test(test, name) AppMap::DetectEnabled.discourage_conflicting_recording_methods :minitest if first_recording? @recording_count += 1 @recordings_by_test[test.object_id] = Recording.new(test, name) end |
.config ⇒ Object
98 99 100 |
# File 'lib/appmap/minitest.rb', line 98 def config @config or raise 'AppMap is not configured' end |
.enabled? ⇒ Boolean
136 137 138 |
# File 'lib/appmap/minitest.rb', line 136 def enabled? AppMap.recording_enabled?(:minitest) end |
.end_test(test, exception:) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/appmap/minitest.rb', line 91 def end_test(test, exception:) recording = @recordings_by_test.delete(test.object_id) return warn "No recording found for #{test}" unless recording recording.finish test.failures || [], exception end |
.first_recording? ⇒ Boolean
79 80 81 |
# File 'lib/appmap/minitest.rb', line 79 def first_recording? @recording_count == 0 end |
.init ⇒ Object
75 76 77 |
# File 'lib/appmap/minitest.rb', line 75 def init FileUtils.mkdir_p APPMAP_OUTPUT_DIR end |
.metadata ⇒ Object
17 18 19 |
# File 'lib/appmap/minitest.rb', line 17 def self. AppMap. end |
.run ⇒ Object
140 141 142 |
# File 'lib/appmap/minitest.rb', line 140 def run init end |
.save(name:, class_map:, source_location:, test_status:, test_failure:, exception:, events:) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/appmap/minitest.rb', line 106 def save(name:, class_map:, source_location:, test_status:, test_failure:, exception:, events:) = AppMap::Minitest..tap do |m| m[:name] = name m[:source_location] = source_location m[:app] = AppMap.configuration.name m[:frameworks] ||= [] m[:frameworks] << { name: 'minitest', version: Gem.loaded_specs['minitest']&.version&.to_s } m[:recorder] = { name: 'minitest', type: 'tests' } m[:test_status] = test_status m[:test_failure] = test_failure if test_failure m[:exception] = Util.format_exception(exception) if exception end appmap = { version: AppMap::APPMAP_FORMAT_VERSION, metadata: , classMap: class_map, events: events }.compact fname = AppMap::Util.scenario_filename(name) AppMap::Util.write_appmap(File.join(APPMAP_OUTPUT_DIR, fname), appmap) end |