minitest-reporters 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e52b066c54c031213526e32a0674b52a5c3ae1f789dd0a8964f6d28e6492a93
4
- data.tar.gz: 4a4a5716998c1c031975dac76d881f5e36b803a375334629b39a8240a8a85ac3
3
+ metadata.gz: de01e0afb6f385fb1d12dcf414a2f5f2c5b87363bb6300ae35985c8bc2354638
4
+ data.tar.gz: 3def5f8c01897b2e39395479f9599dcb6b837366512a8486ad9d7c19a6be5aab
5
5
  SHA512:
6
- metadata.gz: 319f222e3c13c8d0e54b6f9360f48d1766602ec5350f358d785efdc22a199a919f8c5b25fe9169cc94bb26b2f528c9fc195d72d60ca863285ad9b990992525c5
7
- data.tar.gz: b905c611851503c3e21cc9642e0251bff21eae23550c0d72d33fd1adbf985029d22307cf511f4f4329378892fd8880a11eda7a0f0de01153d40a19a7f21191b6
6
+ metadata.gz: db577d5beacf367f1ed9e61306b927039fe3f2c0ae7c5549094696a0ae457e39c43fc07ab1fc880caf051555e650a57d2a23d051b1e98e8e1db0e5a34609ad00
7
+ data.tar.gz: 8b4cf058bf3d813fa63fa71005f7eca6a5516a1c317b7bb8ca911f543c09fa8d1295f4079319ae3d19835a73b5a8a77ae619b934a13da28466efd5018160dad0
@@ -5,12 +5,12 @@ on: [push, pull_request]
5
5
  jobs:
6
6
  test:
7
7
  runs-on: ubuntu-latest
8
-
9
8
  strategy:
10
9
  fail-fast: false
11
10
  matrix:
12
11
  ruby-version:
13
12
  - head
13
+ - '3.2'
14
14
  - '3.1'
15
15
  - '3.0'
16
16
  - '2.7'
@@ -18,14 +18,30 @@ jobs:
18
18
  - '2.5'
19
19
  - '2.4'
20
20
  - '2.3'
21
- - '2.2'
22
- - '2.1'
23
- - '2.0'
24
21
  - jruby-head
25
22
  - jruby-9.3
26
23
  - jruby-9.2
27
24
  steps:
28
- - uses: actions/checkout@v2
25
+ - uses: actions/checkout@v3
26
+ - name: Set up Ruby ${{ matrix.ruby-version }}
27
+ uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby-version }}
30
+ bundler-cache: true # 'bundle install' and cache
31
+ - name: Run tests
32
+ run: bundle exec rake
33
+
34
+ legacy-test:
35
+ runs-on: ubuntu-20.04
36
+ strategy:
37
+ fail-fast: false
38
+ matrix:
39
+ ruby-version:
40
+ - '2.2'
41
+ - '2.1'
42
+ - '2.0'
43
+ steps:
44
+ - uses: actions/checkout@v3
29
45
  - name: Set up Ruby ${{ matrix.ruby-version }}
30
46
  uses: ruby/setup-ruby@v1
31
47
  with:
data/.yardopts CHANGED
@@ -1,6 +1,5 @@
1
1
  --readme README.md
2
2
  --markup markdown
3
- --markup-provider maruku
4
3
  --default-return ""
5
4
  --title "Minitest-reporters Documentation"
6
- --hide-void-return
5
+ --hide-void-return
data/CHANGELOG.md CHANGED
@@ -1,4 +1,13 @@
1
- ### [dev](https://github.com/kern/minitest-reporters/compare/v1.6.1...master)
1
+ ### [dev](https://github.com/minitest-reporters/minitest-reporters/compare/v1.7.0...master)
2
+
3
+ ### [1.7.0](https://github.com/minitest-reporters/minitest-reporters/compare/v1.6.1...v1.7.0)
4
+
5
+ * Minor documentation improvements [#343](https://github.com/minitest-reporters/minitest-reporters/pull/343)
6
+ * Fixed homepage link in gemspec [#333](https://github.com/minitest-reporters/minitest-reporters/pull/333) contributed by [andyw8](https://github.com/andyw8)
7
+ * Added Ruby 3.2 to the CI matrix [#335](https://github.com/minitest-reporters/minitest-reporters/pull/335) contributed by [petergoldstein](https://github.com/petergoldstein)
8
+ * Updated `JUnitReporter` to output a failure screenshot path when included in the minitest result [#346](https://github.com/minitest-reporters/minitest-reporters/pull/346) contributed by [matteeyah](https://github.com/matteeyah)
9
+ * Fixed backwards fraction in `ProgressReporter` default format [#348](https://github.com/minitest-reporters/minitest-reporters/pull/348) contributed by [notEthan](https://github.com/notEthan)
10
+ * Added option `suppress_inline_failure_output` to `SpecReporter` to provide an explicit switch, separate from `print_failure_summary`, for suppressing inline failure messages. Until this change, the `print_failure_summary` would do both: print a failure/error summary after all tests run and suppress the inline failure messages. With this change `print_failure_summary` will just add a summary at the end of a test run, and it will no longer suppress the inline failure messages. [#352](https://github.com/minitest-reporters/minitest-reporters/pull/352) contributed by [rthbound](https://github.com/rthbound)
2
11
 
3
12
  ### [1.6.1](https://github.com/kern/minitest-reporters/compare/v1.6.0...v1.6.1)
4
13
 
data/README.md CHANGED
@@ -46,11 +46,11 @@ export MINITEST_REPORTER=JUnitReporter
46
46
  Detection of those systems is based on presence of certain ENV variables and are evaluated in the following order:
47
47
 
48
48
  ```
49
- MINITEST_REPORTER => use reporter indicated in env variable
50
- TM_PID => use RubyMateReporter
51
- RM_INFO => use RubyMineReporter
52
- TEAMCITY_VERSION => use RubyMineReporter
53
- VIM => disable all Reporters
49
+ MINITEST_REPORTER => use reporter indicated in env variable
50
+ TM_PID => use RubyMateReporter
51
+ RM_INFO => use RubyMineReporter
52
+ TEAMCITY_VERSION => use RubyMineReporter
53
+ VIM => disable all Reporters
54
54
  ```
55
55
 
56
56
  The following reporters are provided:
@@ -77,15 +77,15 @@ Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(:color => tru
77
77
 
78
78
  **Default Reporter**
79
79
 
80
- ![Default Reporter](./assets/default-reporter.png?raw=true)
80
+ ![Default Reporter](https://raw.githubusercontent.com/minitest-reporters/minitest-reporters/master/assets/default-reporter.png)
81
81
 
82
82
  **Spec Reporter**
83
83
 
84
- ![Spec Reporter](./assets/spec-reporter.png?raw=true)
84
+ ![Spec Reporter](https://raw.githubusercontent.com/minitest-reporters/minitest-reporters/master/assets/spec-reporter.png)
85
85
 
86
86
  **Progress Reporter**
87
87
 
88
- ![Progress Reporter](./assets/progress-reporter.png?raw=true)
88
+ ![Progress Reporter](https://raw.githubusercontent.com/minitest-reporters/minitest-reporters/master/assets/progress-reporter.png)
89
89
 
90
90
  ## Caveats ##
91
91
 
@@ -104,11 +104,11 @@ happening if you see overly long or otherwise unexpected backtraces.)
104
104
  To avoid that, you must manually tell minitest-reporters which filter to use. In Rails,
105
105
  do this in `test_helper.rb`:
106
106
  ```ruby
107
- Minitest::Reporters.use!(
108
- Minitest::Reporters::DefaultReporter.new,
109
- ENV,
110
- Minitest.backtrace_filter
111
- )
107
+ Minitest::Reporters.use!(
108
+ Minitest::Reporters::DefaultReporter.new,
109
+ ENV,
110
+ Minitest.backtrace_filter
111
+ )
112
112
  ```
113
113
  The third parameter to `.use!`, in this case `Minitest.backtrace_filter`, should be a
114
114
  filter object. In the above example, you're telling minitest-reporters to use the filter
@@ -86,31 +86,23 @@ module Minitest
86
86
  suite_result = analyze_suite(tests)
87
87
  file_path = get_relative_path(tests.first)
88
88
 
89
- if @timestamp_report
90
- xml.testsuite(:name => suite, :filepath => file_path,
91
- :skipped => suite_result[:skip_count], :failures => suite_result[:fail_count],
92
- :errors => suite_result[:error_count], :tests => suite_result[:test_count],
93
- :assertions => suite_result[:assertion_count], :time => suite_result[:time],
94
- :timestamp => suite_result[:timestamp]) do
95
- tests.each do |test|
96
- lineno = get_source_location(test).last
97
- xml.testcase(:name => test.name, :lineno => lineno, :classname => suite, :assertions => test.assertions,
98
- :time => test.time, :file => file_path) do
99
- xml << xml_message_for(test) unless test.passed?
100
- end
101
- end
102
- end
103
- else
104
- xml.testsuite(:name => suite, :filepath => file_path,
105
- :skipped => suite_result[:skip_count], :failures => suite_result[:fail_count],
106
- :errors => suite_result[:error_count], :tests => suite_result[:test_count],
107
- :assertions => suite_result[:assertion_count], :time => suite_result[:time]) do
108
- tests.each do |test|
109
- lineno = get_source_location(test).last
110
- xml.testcase(:name => test.name, :lineno => lineno, :classname => suite, :assertions => test.assertions,
111
- :time => test.time, :file => file_path) do
112
- xml << xml_message_for(test) unless test.passed?
113
- end
89
+ testsuite_attributes = {
90
+ :name => suite, :filepath => file_path, :skipped => suite_result[:skip_count],
91
+ :failures => suite_result[:fail_count], :errors => suite_result[:error_count],
92
+ :tests => suite_result[:test_count], :assertions => suite_result[:assertion_count],
93
+ :time => suite_result[:time]
94
+ }
95
+ testsuite_attributes[:timestamp] = suite_result[:timestamp] if @timestamp_report
96
+
97
+ xml.testsuite(testsuite_attributes) do
98
+ tests.each do |test|
99
+ lineno = get_source_location(test).last
100
+ xml.testcase(
101
+ :name => test.name, :lineno => lineno, :classname => suite,
102
+ :assertions => test.assertions, :time => test.time, :file => file_path
103
+ ) do
104
+ xml << xml_message_for(test) unless test.passed?
105
+ xml << xml_attachment_for(test) if test.respond_to?('metadata') && test.metadata[:failure_screenshot_path]
114
106
  end
115
107
  end
116
108
  end
@@ -155,6 +147,12 @@ module Minitest
155
147
  end
156
148
  end
157
149
 
150
+ def xml_attachment_for(test)
151
+ xml = Builder::XmlMarkup.new(:indent => 2, :margin => 2)
152
+
153
+ xml.tag!('system-out', "[[ATTACHMENT|#{test.metadata[:failure_screenshot_path]}]]")
154
+ end
155
+
158
156
  def location(exception)
159
157
  last_before_assertion = ''
160
158
  exception.backtrace.reverse_each do |s|
@@ -24,7 +24,7 @@ module Minitest
24
24
  starting_at: count,
25
25
  progress_mark: green(PROGRESS_MARK),
26
26
  remainder_mark: ' ',
27
- format: options.fetch(:format, ' %C/%c: [%B] %p%% %a, %e'),
27
+ format: options.fetch(:format, ' %c/%C: [%B] %p%% %a, %e'),
28
28
  autostart: false
29
29
  )
30
30
  end
@@ -12,12 +12,15 @@ module Minitest
12
12
 
13
13
  # The constructor takes an `options` hash
14
14
  # @param options [Hash]
15
- # @option options print_failure_summary [Boolean] wether to print the errors at the bottom of the
16
- # report or inline as they happen.
15
+ # @option options print_failure_summary [Boolean] whether to print the errors at the bottom of the
16
+ # report.
17
+ # @option options suppress_inline_failure_output [Boolean] whether to suppress the printing of errors
18
+ # inline with the test results as they occur.
17
19
  #
18
20
  def initialize(options = {})
19
21
  super
20
22
  @print_failure_summary = options[:print_failure_summary]
23
+ @suppress_inline_failure_output = options[:suppress_inline_failure_output]
21
24
  end
22
25
 
23
26
  def start
@@ -50,7 +53,7 @@ module Minitest
50
53
  def record(test)
51
54
  super
52
55
  record_print_status(test)
53
- record_print_failures_if_any(test) unless @print_failure_summary
56
+ record_print_failures_if_any(test) if @suppress_inline_failure_output
54
57
  end
55
58
 
56
59
  protected
@@ -1,5 +1,5 @@
1
1
  module Minitest
2
2
  module Reporters
3
- VERSION = '1.6.1'.freeze
3
+ VERSION = '1.7.0'.freeze
4
4
  end
5
5
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ['Alexander Kern']
10
10
  s.email = ['alex@kernul.com']
11
- s.homepage = 'https://github.com/CapnKernul/minitest-reporters'
11
+ s.homepage = 'https://github.com/minitest-reporters/minitest-reporters'
12
12
  s.summary = %q{Create customizable Minitest output formats}
13
13
  s.description = %q{Death to haphazard monkey-patching! Extend Minitest through simple hooks.}
14
14
  s.license = 'MIT'
@@ -20,7 +20,6 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency 'ruby-progressbar'
21
21
  s.add_dependency 'builder'
22
22
 
23
- s.add_development_dependency 'maruku'
24
23
  s.add_development_dependency 'rake'
25
24
  s.add_development_dependency 'rubocop'
26
25
 
@@ -8,5 +8,21 @@ module MinitestReportersTest
8
8
  output = `ruby #{test_filename} 2>&1`
9
9
  refute_match 'No such file or directory', output
10
10
  end
11
+
12
+ if Gem::Version.new(Minitest::VERSION) >= Gem::Version.new('5.19.0')
13
+ def test_outputs_screenshot_metadata
14
+ test = Minitest::Test.new('test_fail')
15
+ test.define_singleton_method(:test_fail) { assert false }
16
+ test.metadata = { failure_screenshot_path: 'screenshot.png' }
17
+
18
+ reporter = Minitest::Reporters::JUnitReporter.new('test/tmp')
19
+ reporter.start
20
+ reporter.record(test.run)
21
+ reporter.report
22
+
23
+ test_output = File.read('test/tmp/TEST-Minitest-Test.xml')
24
+ assert_includes test_output, '<system-out>[[ATTACHMENT|screenshot.png]]</system-out>'
25
+ end
26
+ end
11
27
  end
12
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-reporters
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-27 00:00:00.000000000 Z
11
+ date: 2024-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: maruku
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rake
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -167,7 +153,7 @@ files:
167
153
  - test/unit/minitest/minitest_reporter_plugin_test.rb
168
154
  - test/unit/minitest/reporters_test.rb
169
155
  - test/unit/minitest/spec_reporter_test.rb
170
- homepage: https://github.com/CapnKernul/minitest-reporters
156
+ homepage: https://github.com/minitest-reporters/minitest-reporters
171
157
  licenses:
172
158
  - MIT
173
159
  metadata: {}