minitest-heat 1.0.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +3 -0
- data/.github/workflows/main.yml +23 -0
- data/CHANGELOG.md +28 -0
- data/Gemfile.lock +30 -24
- data/README.md +16 -35
- data/lib/minitest/heat/backtrace/line_count.rb +35 -0
- data/lib/minitest/heat/backtrace/line_parser.rb +1 -1
- data/lib/minitest/heat/backtrace.rb +1 -0
- data/lib/minitest/heat/configuration.rb +23 -0
- data/lib/minitest/heat/issue.rb +15 -13
- data/lib/minitest/heat/location.rb +19 -3
- data/lib/minitest/heat/output/backtrace.rb +3 -4
- data/lib/minitest/heat/version.rb +1 -1
- data/lib/minitest/heat.rb +16 -0
- data/minitest-heat.gemspec +2 -2
- metadata +10 -11
- data/examples/exceptions.png +0 -0
- data/examples/failures.png +0 -0
- data/examples/map.png +0 -0
- data/examples/markers.png +0 -0
- data/examples/skips.png +0 -0
- data/examples/slows.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e19adf67c01638e6cf3c53f5840c1d0a1fa82b3d41b3a8f1965d9ae24735e606
|
4
|
+
data.tar.gz: 3b8ced671f3aafaa3beaea45a0222ace34a8d37f3a0ea50b5085231d24e916cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81c762ce455b684275d490f57839c4b1090ad7d0c723b4df479094a5aba5a722ffe74ef16e9b16ca549795c6cba95e863f7b2ff4b71476def525857c7c4dbffc
|
7
|
+
data.tar.gz: 889ebfb98b36a7d7c2877f89b89aabf39c610ae220badb85587c1a29bf99f5651a60107dec3c892364099974cbce7c8fc7eb2bccbbb9180ecae1578307f7e76c
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
name: Ruby
|
2
|
+
|
3
|
+
on: [push,pull_request]
|
4
|
+
|
5
|
+
env:
|
6
|
+
CI: true
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
os: [ubuntu-latest, macos-latest]
|
13
|
+
ruby: [2.7.6, 3.0.4, 3.1.2, 3.2.0-preview2]
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
- name: Set up Ruby
|
18
|
+
uses: ruby/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: ${{ matrix.ruby }}
|
21
|
+
bundler-cache: true
|
22
|
+
- name: Run Tests
|
23
|
+
run: bundle exec rake
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
## [Unreleased]
|
2
|
+
|
3
|
+
Nothing at the moment.
|
4
|
+
|
5
|
+
## [1.2.0] - 2022-10-31
|
6
|
+
|
7
|
+
Mainly some improvements to make test failures more resilient and improve the formatting when there are issues.
|
8
|
+
|
9
|
+
- Don't consider binstubs project files when colorizing the stacktrace.
|
10
|
+
- Switch debugging from Pry to debug
|
11
|
+
- Ensure overly-long exception messages are truncated to reduce excessive scrolling
|
12
|
+
- Make backtrace display smarter about how many lines to display
|
13
|
+
- Fix bug that was incorrectly deleting the bin directory
|
14
|
+
- Prepare for better handling of "stack level too deep" traces
|
15
|
+
|
16
|
+
## [1.1.0] - 2021-12-09
|
17
|
+
|
18
|
+
The biggest update is that the slow thresholds are now configurable.
|
19
|
+
|
20
|
+
- Configurable Thresholds
|
21
|
+
- Fixed a bug where `vendor/bundle` gem files were considered project source code files
|
22
|
+
- Set up [GitHub Actions](https://github.com/garrettdimon/minitest-heat/actions) to ensure tests are run on Ubuntu latest and macOs for the [latest Ruby versions](https://github.com/garrettdimon/minitest-heat/blob/main/.github/workflows/main.yml)
|
23
|
+
- Fixed some tests that were accidentally left path-dependent and couldn't pass on other machines
|
24
|
+
|
25
|
+
## [1.0.0] - 2021-12-01
|
26
|
+
|
27
|
+
Initial release.
|
28
|
+
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
minitest-heat (1.
|
4
|
+
minitest-heat (1.2.0)
|
5
5
|
minitest
|
6
6
|
|
7
7
|
GEM
|
@@ -9,33 +9,38 @@ GEM
|
|
9
9
|
specs:
|
10
10
|
ast (2.4.2)
|
11
11
|
awesome_print (1.9.2)
|
12
|
-
|
13
|
-
|
12
|
+
dead_end (4.0.0)
|
13
|
+
debug (1.6.2)
|
14
|
+
irb (>= 1.3.6)
|
15
|
+
reline (>= 0.3.1)
|
14
16
|
docile (1.4.0)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
io-console (0.5.11)
|
18
|
+
irb (1.4.1)
|
19
|
+
reline (>= 0.3.0)
|
20
|
+
json (2.6.2)
|
21
|
+
minitest (5.16.3)
|
22
|
+
parallel (1.22.1)
|
23
|
+
parser (3.1.2.1)
|
19
24
|
ast (~> 2.4.1)
|
20
|
-
|
21
|
-
coderay (~> 1.1)
|
22
|
-
method_source (~> 1.0)
|
23
|
-
rainbow (3.0.0)
|
25
|
+
rainbow (3.1.1)
|
24
26
|
rake (12.3.3)
|
25
|
-
regexp_parser (2.
|
27
|
+
regexp_parser (2.5.0)
|
28
|
+
reline (0.3.1)
|
29
|
+
io-console (~> 0.5)
|
26
30
|
rexml (3.2.5)
|
27
|
-
rubocop (1.
|
31
|
+
rubocop (1.36.0)
|
32
|
+
json (~> 2.3)
|
28
33
|
parallel (~> 1.10)
|
29
|
-
parser (>= 3.
|
34
|
+
parser (>= 3.1.2.1)
|
30
35
|
rainbow (>= 2.2.2, < 4.0)
|
31
36
|
regexp_parser (>= 1.8, < 3.0)
|
32
|
-
rexml
|
33
|
-
rubocop-ast (>= 1.
|
37
|
+
rexml (>= 3.2.5, < 4.0)
|
38
|
+
rubocop-ast (>= 1.20.1, < 2.0)
|
34
39
|
ruby-progressbar (~> 1.7)
|
35
40
|
unicode-display_width (>= 1.4.0, < 3.0)
|
36
|
-
rubocop-ast (1.
|
37
|
-
parser (>= 3.
|
38
|
-
rubocop-minitest (0.
|
41
|
+
rubocop-ast (1.21.0)
|
42
|
+
parser (>= 3.1.1.0)
|
43
|
+
rubocop-minitest (0.22.1)
|
39
44
|
rubocop (>= 0.90, < 2.0)
|
40
45
|
rubocop-rake (0.6.0)
|
41
46
|
rubocop (~> 1.0)
|
@@ -45,18 +50,19 @@ GEM
|
|
45
50
|
simplecov-html (~> 0.11)
|
46
51
|
simplecov_json_formatter (~> 0.1)
|
47
52
|
simplecov-html (0.12.3)
|
48
|
-
simplecov_json_formatter (0.1.
|
49
|
-
unicode-display_width (2.
|
53
|
+
simplecov_json_formatter (0.1.4)
|
54
|
+
unicode-display_width (2.3.0)
|
50
55
|
|
51
56
|
PLATFORMS
|
52
|
-
|
57
|
+
arm64-darwin-21
|
58
|
+
x86_64-linux
|
53
59
|
|
54
60
|
DEPENDENCIES
|
55
61
|
awesome_print
|
56
62
|
dead_end
|
63
|
+
debug
|
57
64
|
minitest (~> 5.0)
|
58
65
|
minitest-heat!
|
59
|
-
pry
|
60
66
|
rake (~> 12.0)
|
61
67
|
rubocop
|
62
68
|
rubocop-minitest
|
@@ -64,4 +70,4 @@ DEPENDENCIES
|
|
64
70
|
simplecov
|
65
71
|
|
66
72
|
BUNDLED WITH
|
67
|
-
2.
|
73
|
+
2.3.22
|
data/README.md
CHANGED
@@ -1,39 +1,9 @@
|
|
1
|
-
# 🔥 Minitest
|
2
|
-
Minitest
|
1
|
+
# 🔥 Minitest Heat 🔥
|
2
|
+
Minitest Heat helps you identify problems faster so you can more efficiently resolve test failures by generating a heat map that shows where failures are concentrated.
|
3
3
|
|
4
|
-
|
4
|
+
For a more detailed explanation of Minitest Heat with screenshots, [head over to the wiki for the full story](https://github.com/garrettdimon/minitest-heat/wiki).
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
It suppresses less critical issues like skips or slows when there are legitimate failures. It won't display information about slow tests unless all tests are passing (meaning no errors, failures, or skips)
|
9
|
-
|
10
|
-
It presents failures differently depending on the context of failure. For instance, it treats exceptions differently based on whether they arose directly from a test or from source code. It also treats extremely slow tests differently from moderately slow tests.
|
11
|
-
|
12
|
-
Markers get some nuance so that slow tests receive different markers than standard passing tests, and exception-triggered failures get different markers for source-code triggered exceptions (E) and test-triggered exceptions ('B' for 'Broken Test').
|
13
|
-
|
14
|
-
![Example Markers Displayed by Minitest Heat](https://raw.githubusercontent.com/garrettdimon/minitest-heat/main/examples/markers.png)
|
15
|
-
|
16
|
-
It also formats the failure details and backtraces to make them more scannable by emphasizing the project-relates lines from the backtrace.
|
17
|
-
|
18
|
-
It intelligently recognizes when an exception was raised from a test defintion vs. when an exception is genuinely triggered from the source code in order to help focus on fixing deeper exceptions first.
|
19
|
-
|
20
|
-
![Example Exceptions Displayed by Minitest Heat](https://raw.githubusercontent.com/garrettdimon/minitest-heat/main/examples/exceptions.png)
|
21
|
-
|
22
|
-
Failures are displayed ina fairly predictable manner but formatted to show the source code from the test so you can see the assertion that failed in addition to the summary of values that didn't satisfy the assertion.
|
23
|
-
|
24
|
-
![Example Failures Displayed by Minitest Heat](https://raw.githubusercontent.com/garrettdimon/minitest-heat/main/examples/failures.png)
|
25
|
-
|
26
|
-
Skipped tests are displayed in a simple manner as well so that it's easy to see the source of the skipped test as well as the reason it was skipped.
|
27
|
-
|
28
|
-
![Example Skips Displayed by Minitest Heat](https://raw.githubusercontent.com/garrettdimon/minitest-heat/main/examples/skips.png)
|
29
|
-
|
30
|
-
Slow tests get slightly more informative labels to indicate that they did pass, but they could use performance improvements. Tests that are particularly slow are called out with a little more emphasis so it's easier to focus on really slow tests first as they frequently represent the most potential for performance gains.
|
31
|
-
|
32
|
-
![Example Slows Displayed by Minitest Heat](https://raw.githubusercontent.com/garrettdimon/minitest-heat/main/examples/slows.png)
|
33
|
-
|
34
|
-
It also always displays the most significant issues at the bottom of the list in order to reduce the need to scroll up through the test failures. As you fix issues, the list becomes shorter, and the less significant issues will make there way to the bottom and be visible without scrolling.
|
35
|
-
|
36
|
-
For some additional insight about priorities and how it works, this [Twitter thread](https://twitter.com/garrettdimon/status/1432703746526560266) is currently the best place to start.
|
6
|
+
Or for some additional insight about priorities and how it works, this [Twitter thread](https://twitter.com/garrettdimon/status/1432703746526560266) is a good read.
|
37
7
|
|
38
8
|
## Installation
|
39
9
|
Add this line to your application's Gemfile:
|
@@ -57,7 +27,18 @@ require 'minitest/heat'
|
|
57
27
|
```
|
58
28
|
|
59
29
|
## Configuration
|
60
|
-
Minitest Heat doesn't currently offer a significant set of configuration options, but
|
30
|
+
Minitest Heat doesn't currently offer a significant set of configuration options, but the thresholds for "Slow" and "Painfully Slow" tests can be adjusted. By default, it considers anything over 1.0s to be 'slow' and anything over 3.0s to be 'painfully slow'.
|
31
|
+
|
32
|
+
You can add a configuration block to your `test_helper.rb` file after the `require 'minitest/heat'` line.
|
33
|
+
|
34
|
+
For example:
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
Minitest::Heat.configure do |config|
|
38
|
+
config.slow_threshold = 0.01
|
39
|
+
config.painfully_slow_threshold = 0.5
|
40
|
+
end
|
41
|
+
```
|
61
42
|
|
62
43
|
## Development
|
63
44
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Minitest
|
4
|
+
module Heat
|
5
|
+
class Backtrace
|
6
|
+
# Determines an optimal line count for backtrace locations in order to have relevant
|
7
|
+
# information but keep the backtrace as compact as possible
|
8
|
+
class LineCount
|
9
|
+
DEFAULT_LINE_COUNT = 20
|
10
|
+
|
11
|
+
attr_accessor :locations
|
12
|
+
|
13
|
+
def initialize(locations)
|
14
|
+
@locations = locations
|
15
|
+
end
|
16
|
+
|
17
|
+
def earliest_project_location
|
18
|
+
locations.rindex { |element| element.project_file? }
|
19
|
+
end
|
20
|
+
|
21
|
+
def max_location
|
22
|
+
locations.size - 1
|
23
|
+
end
|
24
|
+
|
25
|
+
def limit
|
26
|
+
[
|
27
|
+
DEFAULT_LINE_COUNT,
|
28
|
+
earliest_project_location,
|
29
|
+
max_location
|
30
|
+
].compact.min
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -11,7 +11,7 @@ module Minitest
|
|
11
11
|
# Parses a line from a backtrace in order to convert it to usable components
|
12
12
|
def self.read(raw_text)
|
13
13
|
raw_pathname, raw_line_number, raw_container = raw_text.split(':')
|
14
|
-
raw_container = raw_container
|
14
|
+
raw_container = raw_container&.delete_prefix('in `')&.delete_suffix("'")
|
15
15
|
|
16
16
|
::Minitest::Heat::Location.new(
|
17
17
|
pathname: raw_pathname,
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'forwardable'
|
4
|
+
|
5
|
+
module Minitest
|
6
|
+
module Heat
|
7
|
+
# For managing configuration options on how Minitest Heat should handle results
|
8
|
+
class Configuration
|
9
|
+
DEFAULTS = {
|
10
|
+
slow_threshold: 1.0,
|
11
|
+
painfully_slow_threshold: 3.0
|
12
|
+
}.freeze
|
13
|
+
|
14
|
+
attr_accessor :slow_threshold,
|
15
|
+
:painfully_slow_threshold
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@slow_threshold = DEFAULTS[:slow_threshold]
|
19
|
+
@painfully_slow_threshold = DEFAULTS[:painfully_slow_threshold]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/minitest/heat/issue.rb
CHANGED
@@ -10,12 +10,12 @@ module Minitest
|
|
10
10
|
|
11
11
|
TYPES = %i[error broken failure skipped painful slow].freeze
|
12
12
|
|
13
|
-
# Long-term, these could be configurable so that people can determine their own thresholds of
|
14
|
-
# pain for slow tests
|
15
|
-
SLOW_THRESHOLDS = {
|
16
|
-
|
17
|
-
|
18
|
-
}.freeze
|
13
|
+
# # Long-term, these could be configurable so that people can determine their own thresholds of
|
14
|
+
# # pain for slow tests
|
15
|
+
# SLOW_THRESHOLDS = {
|
16
|
+
# slow: 1.0,
|
17
|
+
# painful: 3.0
|
18
|
+
# }.freeze
|
19
19
|
|
20
20
|
attr_reader :assertions,
|
21
21
|
:locations,
|
@@ -120,18 +120,14 @@ module Minitest
|
|
120
120
|
#
|
121
121
|
# @return [Float] number of seconds after which a test is considered slow
|
122
122
|
def slow_threshold
|
123
|
-
|
124
|
-
# only a fallback value if it's not specified anywhere else
|
125
|
-
SLOW_THRESHOLDS[:slow]
|
123
|
+
Minitest::Heat.configuration.slow_threshold
|
126
124
|
end
|
127
125
|
|
128
126
|
# The number, in seconds, for a test to be considered "painfully slow"
|
129
127
|
#
|
130
128
|
# @return [Float] number of seconds after which a test is considered painfully slow
|
131
129
|
def painfully_slow_threshold
|
132
|
-
|
133
|
-
# only a fallback value if it's not specified anywhere else
|
134
|
-
SLOW_THRESHOLDS[:painful]
|
130
|
+
Minitest::Heat.configuration.painfully_slow_threshold
|
135
131
|
end
|
136
132
|
|
137
133
|
# Determines if a test should be considered slow by comparing it to the low end definition of
|
@@ -204,7 +200,13 @@ module Minitest
|
|
204
200
|
#
|
205
201
|
# @return [String] the first line of the exception message
|
206
202
|
def first_line_of_exception_message
|
207
|
-
message.split("\n")[0]
|
203
|
+
text = message.split("\n")[0]
|
204
|
+
|
205
|
+
text.size > exception_message_limit ? "#{text[0..exception_message_limit]}..." : text
|
206
|
+
end
|
207
|
+
|
208
|
+
def exception_message_limit
|
209
|
+
200
|
208
210
|
end
|
209
211
|
end
|
210
212
|
end
|
@@ -131,9 +131,25 @@ module Minitest
|
|
131
131
|
|
132
132
|
# Determines if a given file is from the project directory
|
133
133
|
#
|
134
|
-
# @return [Boolean] true if the file is in the project (source code or test)
|
134
|
+
# @return [Boolean] true if the file is in the project (source code or test) but not vendored
|
135
135
|
def project_file?
|
136
|
-
path.include?(project_root_dir)
|
136
|
+
path.include?(project_root_dir) && !bundled_file? && !binstub_file?
|
137
|
+
end
|
138
|
+
|
139
|
+
# Determines if the file is in the project `vendor/bundle` directory.
|
140
|
+
#
|
141
|
+
# @return [Boolean] true if the file is in `<project_root>/vendor/bundle
|
142
|
+
def bundled_file?
|
143
|
+
path.include?("#{project_root_dir}/vendor/bundle")
|
144
|
+
end
|
145
|
+
|
146
|
+
# Determines if the file is in the project `bin` directory. With binstub'd gems, they'll
|
147
|
+
# appear to be source code because the code is located in the project directory. This helps
|
148
|
+
# make sure the backtraces don't think that's the case
|
149
|
+
#
|
150
|
+
# @return [Boolean] true if the file is in `<project_root>/bin
|
151
|
+
def binstub_file?
|
152
|
+
path.include?("#{project_root_dir}/bin")
|
137
153
|
end
|
138
154
|
|
139
155
|
# Determines if a given file follows the standard approaching to naming test files.
|
@@ -145,7 +161,7 @@ module Minitest
|
|
145
161
|
|
146
162
|
# Determines if a given file is a non-test file from the project directory
|
147
163
|
#
|
148
|
-
# @return [Boolean] true if the file is in the project but not a test file
|
164
|
+
# @return [Boolean] true if the file is in the project but not a test file or vendored file
|
149
165
|
def source_code_file?
|
150
166
|
project_file? && !test_file?
|
151
167
|
end
|
@@ -5,7 +5,6 @@ module Minitest
|
|
5
5
|
class Output
|
6
6
|
# Builds the collection of tokens for displaying a backtrace when an exception occurs
|
7
7
|
class Backtrace
|
8
|
-
DEFAULT_LINE_COUNT = 10
|
9
8
|
DEFAULT_INDENTATION_SPACES = 2
|
10
9
|
|
11
10
|
attr_accessor :locations, :backtrace
|
@@ -25,14 +24,14 @@ module Minitest
|
|
25
24
|
#
|
26
25
|
# @return [Integer] the number of lines to limit the backtrace to
|
27
26
|
def line_count
|
28
|
-
# Defined as a method instead of using the constant
|
27
|
+
# Defined as a method instead of using the constant directly in order to easily support
|
29
28
|
# adding options for controlling how many lines are displayed from a backtrace.
|
30
29
|
#
|
31
30
|
# For example, instead of a fixed number, the backtrace could dynamically calculate how
|
32
31
|
# many lines it should displaye in order to get to the origination point. Or it could have
|
33
32
|
# a default, but inteligently go back further if the backtrace meets some criteria for
|
34
33
|
# displaying more lines.
|
35
|
-
|
34
|
+
::Minitest::Heat::Backtrace::LineCount.new(backtrace.locations).limit
|
36
35
|
end
|
37
36
|
|
38
37
|
# A subset of parsed lines from the backtrace.
|
@@ -49,7 +48,7 @@ module Minitest
|
|
49
48
|
# it could display the entire backtrace without filtering anything.
|
50
49
|
# - It could scan the backtrace to the first appearance of project files and then display
|
51
50
|
# all of the lines that occurred after that instance
|
52
|
-
# - It
|
51
|
+
# - It could filter the lines differently whether the issue originated from a test or from
|
53
52
|
# the source code.
|
54
53
|
# - It could allow supporting a "compact" or "robust" reporter style so that someone on
|
55
54
|
# a smaller screen could easily reduce the information shown so that the results could
|
data/lib/minitest/heat.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'heat/configuration'
|
3
4
|
require_relative 'heat/backtrace'
|
4
5
|
require_relative 'heat/hit'
|
5
6
|
require_relative 'heat/issue'
|
@@ -32,5 +33,20 @@ module Minitest
|
|
32
33
|
# Pulls from minitest-color as well:
|
33
34
|
# https://github.com/teoljungberg/minitest-color/blob/master/lib/minitest/color_plugin.rb
|
34
35
|
module Heat
|
36
|
+
class << self
|
37
|
+
attr_writer :configuration
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.configuration
|
41
|
+
@configuration ||= Configuration.new
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.reset
|
45
|
+
@configuration = Configuration.new
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.configure
|
49
|
+
yield(configuration)
|
50
|
+
end
|
35
51
|
end
|
36
52
|
end
|
data/minitest-heat.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = 'Presents test results in a visual manner to guide you to where to look first.'
|
13
13
|
spec.homepage = 'https://github.com/garrettdimon/minitest-heat'
|
14
14
|
spec.license = 'MIT'
|
15
|
-
spec.required_ruby_version = Gem::Requirement.new('>= 2.
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.7.6')
|
16
16
|
|
17
17
|
spec.metadata['homepage_uri'] = spec.homepage
|
18
18
|
spec.metadata['bug_tracker_uri'] = 'https://github.com/garrettdimon/minitest-heat/issues'
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
|
35
35
|
spec.add_development_dependency 'awesome_print'
|
36
36
|
spec.add_development_dependency 'dead_end'
|
37
|
-
spec.add_development_dependency '
|
37
|
+
spec.add_development_dependency 'debug'
|
38
38
|
spec.add_development_dependency 'rubocop'
|
39
39
|
spec.add_development_dependency 'rubocop-minitest'
|
40
40
|
spec.add_development_dependency 'rubocop-rake'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-heat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garrett Dimon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: debug
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -130,9 +130,12 @@ executables: []
|
|
130
130
|
extensions: []
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
|
+
- ".github/FUNDING.yml"
|
134
|
+
- ".github/workflows/main.yml"
|
133
135
|
- ".gitignore"
|
134
136
|
- ".rubocop.yml"
|
135
137
|
- ".travis.yml"
|
138
|
+
- CHANGELOG.md
|
136
139
|
- CODE_OF_CONDUCT.md
|
137
140
|
- Gemfile
|
138
141
|
- Gemfile.lock
|
@@ -141,15 +144,11 @@ files:
|
|
141
144
|
- Rakefile
|
142
145
|
- bin/console
|
143
146
|
- bin/setup
|
144
|
-
- examples/exceptions.png
|
145
|
-
- examples/failures.png
|
146
|
-
- examples/map.png
|
147
|
-
- examples/markers.png
|
148
|
-
- examples/skips.png
|
149
|
-
- examples/slows.png
|
150
147
|
- lib/minitest/heat.rb
|
151
148
|
- lib/minitest/heat/backtrace.rb
|
149
|
+
- lib/minitest/heat/backtrace/line_count.rb
|
152
150
|
- lib/minitest/heat/backtrace/line_parser.rb
|
151
|
+
- lib/minitest/heat/configuration.rb
|
153
152
|
- lib/minitest/heat/hit.rb
|
154
153
|
- lib/minitest/heat/issue.rb
|
155
154
|
- lib/minitest/heat/location.rb
|
@@ -188,14 +187,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
187
|
requirements:
|
189
188
|
- - ">="
|
190
189
|
- !ruby/object:Gem::Version
|
191
|
-
version: 2.
|
190
|
+
version: 2.7.6
|
192
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
192
|
requirements:
|
194
193
|
- - ">="
|
195
194
|
- !ruby/object:Gem::Version
|
196
195
|
version: '0'
|
197
196
|
requirements: []
|
198
|
-
rubygems_version: 3.
|
197
|
+
rubygems_version: 3.3.22
|
199
198
|
signing_key:
|
200
199
|
specification_version: 4
|
201
200
|
summary: Presents test results in a visual manner to guide you to where to look first.
|
data/examples/exceptions.png
DELETED
Binary file
|
data/examples/failures.png
DELETED
Binary file
|
data/examples/map.png
DELETED
Binary file
|
data/examples/markers.png
DELETED
Binary file
|
data/examples/skips.png
DELETED
Binary file
|
data/examples/slows.png
DELETED
Binary file
|