fivemat 1.3.6 → 1.3.7
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 +4 -4
- data/fivemat.gemspec +1 -1
- data/lib/fivemat.rb +16 -6
- data/lib/fivemat/cucumber3.rb +52 -0
- data/lib/minitest/fivemat_plugin.rb +7 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4c54445cd194ccb6f577ba740a2bfc4ebfd17ea461193a33bfd6b3211621dff
|
4
|
+
data.tar.gz: 3f7b54e8fedc5774b6bcddef92c07a104ded401b29fb905a74ff74aa0e823331
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8450a52250bb32a7a79fe7453d4beaa5dbcf6418799ab14d58be45fa6526d261796caa1fac743aaa2751c7a8363328138ef5cf95b2784639d7715249901cd496
|
7
|
+
data.tar.gz: a7f829c8dbeaa4ad5ba3c3b7d0b8a346b231f5d66b925a17fc815e4bf0e3f37d5445fdd8e35ee2dd84ddb23a193fa1ff5bbf050773dac52becbeb8f1aadb7c86
|
data/fivemat.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = "fivemat"
|
5
|
-
gem.version = "1.3.
|
5
|
+
gem.version = "1.3.7"
|
6
6
|
gem.authors = ["Tim Pope"]
|
7
7
|
gem.email = ["code@tp" + 'ope.net']
|
8
8
|
gem.description = %q{MiniTest/RSpec/Cucumber formatter that gives each test file its own line of dots}
|
data/lib/fivemat.rb
CHANGED
@@ -2,13 +2,24 @@ require 'fivemat/elapsed_time'
|
|
2
2
|
|
3
3
|
module Fivemat
|
4
4
|
autoload :Cucumber, 'fivemat/cucumber'
|
5
|
+
autoload :Cucumber3, 'fivemat/cucumber3'
|
5
6
|
autoload :MiniTest, 'fivemat/minitest/unit'
|
6
7
|
autoload :RSpec, 'fivemat/rspec'
|
7
8
|
autoload :RSpec3, 'fivemat/rspec3'
|
8
9
|
autoload :Spec, 'fivemat/spec'
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
def cucumber3?
|
12
|
+
defined?(::Cucumber) && ::Cucumber::VERSION >= '3'
|
13
|
+
end
|
14
|
+
module_function :cucumber3?
|
15
|
+
|
16
|
+
# Cucumber detects the formatter API based on initialize arity
|
17
|
+
if cucumber3?
|
18
|
+
def initialize(config)
|
19
|
+
end
|
20
|
+
else
|
21
|
+
def initialize(runtime, path_or_io, options)
|
22
|
+
end
|
12
23
|
end
|
13
24
|
|
14
25
|
def rspec3?
|
@@ -34,16 +45,15 @@ module Fivemat
|
|
34
45
|
case args.size
|
35
46
|
when 0 then MiniTest::Unit
|
36
47
|
when 1 then
|
37
|
-
if
|
48
|
+
if args.first.class.to_s == "Cucumber::Configuration"
|
49
|
+
Cucumber3
|
50
|
+
elsif rspec3?
|
38
51
|
RSpec3
|
39
52
|
else
|
40
53
|
RSpec
|
41
54
|
end
|
42
55
|
when 2 then Spec
|
43
56
|
when 3
|
44
|
-
if ::Cucumber::VERSION >= '3'
|
45
|
-
abort "Fivemat does not yet support Cucumber 3"
|
46
|
-
end
|
47
57
|
Cucumber
|
48
58
|
else
|
49
59
|
raise ArgumentError
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'cucumber/formatter/progress'
|
2
|
+
|
3
|
+
module Fivemat
|
4
|
+
class Cucumber3 < ::Cucumber::Formatter::Progress
|
5
|
+
include ElapsedTime
|
6
|
+
|
7
|
+
def on_test_case_started(event)
|
8
|
+
super
|
9
|
+
feature = event.test_case.feature
|
10
|
+
|
11
|
+
unless same_feature_as_previous_test_case?(feature)
|
12
|
+
after_feature unless @current_feature.nil?
|
13
|
+
before_feature(feature)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def on_test_run_finished(_event)
|
18
|
+
after_feature
|
19
|
+
after_suite
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def before_feature(feature)
|
25
|
+
@io.print "#{feature} "
|
26
|
+
@io.flush
|
27
|
+
@current_feature = feature
|
28
|
+
@start_time = Time.now
|
29
|
+
end
|
30
|
+
|
31
|
+
def after_feature
|
32
|
+
print_elapsed_time @io, @start_time
|
33
|
+
@io.puts
|
34
|
+
@io.flush
|
35
|
+
|
36
|
+
print_elements(@pending_step_matches, :pending, 'steps')
|
37
|
+
print_elements(@failed_results, :failed, 'steps')
|
38
|
+
|
39
|
+
@pending_step_matches = []
|
40
|
+
@failed_results = []
|
41
|
+
end
|
42
|
+
|
43
|
+
def after_suite
|
44
|
+
@io.puts
|
45
|
+
print_summary
|
46
|
+
end
|
47
|
+
|
48
|
+
def same_feature_as_previous_test_case?(feature)
|
49
|
+
@current_feature && @current_feature.location == feature.location
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -4,13 +4,18 @@ module Minitest
|
|
4
4
|
class FivematReporter < Reporter
|
5
5
|
include ElapsedTime
|
6
6
|
|
7
|
+
def initialize(*args)
|
8
|
+
super
|
9
|
+
@class = nil
|
10
|
+
end
|
11
|
+
|
7
12
|
def record(result)
|
8
|
-
if
|
13
|
+
if @class != result.klass
|
9
14
|
if @class
|
10
15
|
print_elapsed_time(io, @class_start_time)
|
11
16
|
io.print "\n"
|
12
17
|
end
|
13
|
-
@class = result.
|
18
|
+
@class = result.klass
|
14
19
|
@class_start_time = Time.now
|
15
20
|
io.print "#@class "
|
16
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fivemat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pope
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- fivemat.gemspec
|
42
42
|
- lib/fivemat.rb
|
43
43
|
- lib/fivemat/cucumber.rb
|
44
|
+
- lib/fivemat/cucumber3.rb
|
44
45
|
- lib/fivemat/elapsed_time.rb
|
45
46
|
- lib/fivemat/minitest.rb
|
46
47
|
- lib/fivemat/minitest/autorun.rb
|
@@ -69,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
70
|
version: '0'
|
70
71
|
requirements: []
|
71
72
|
rubyforge_project:
|
72
|
-
rubygems_version: 2.7.
|
73
|
+
rubygems_version: 2.7.3
|
73
74
|
signing_key:
|
74
75
|
specification_version: 4
|
75
76
|
summary: Why settle for a test output format when you could have a test output fivemat?
|