dotpretty 0.6.0 → 0.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: fb44866622c88b9a0722ecfd42457185899d29c172a85022513da49842388ae3
4
- data.tar.gz: 1109d0382e8d234177c9f7f94995347d15f01e2ee96609a7924e8a6258e350ed
3
+ metadata.gz: 8205f1decc125ec0d793587399cc4ff3f7969a7eef4af49f329417bb7242e857
4
+ data.tar.gz: 87de6c2d74f51077c24148848494b89409dfc468423bb9689f043370110cf6e2
5
5
  SHA512:
6
- metadata.gz: 35502d2ff40f31df22c7084b460e93c19d4cb6ac7cc49e2d7c7fe2023e78664c7630976b2f3909afce7c2b8b8b9e9121be073366f01437d5f4bd4145bed9221d
7
- data.tar.gz: 5329a2a735a9c600cd038606a113371827d26aaf8bd73f11bc0d4359ee614b585f9478811fbd308ad562c59ed126dfcb5907c189bb296cadd1b4d8707ae63631
6
+ metadata.gz: 5f4f1bdadaf2d027fcb3390e65e9f4dd2b40f403efe9c345b6448090c0fe5e33ddaef5a87e2a87075a17e7e33cc1e959e742d90cc5bbfdb77674e3bdf3fbe22d
7
+ data.tar.gz: 31208e1b8de1e11b30c7c3281f2e9677a2c8021fd593c6e85f8f620cdacf217a82e118123ca2f5d5b93e332dd00777c56c081f596e4bb63a3e8faa59e826109f
@@ -5,6 +5,7 @@ module Dotpretty
5
5
  BUILD_FAILED = /^Build FAILED.$/
6
6
  TEST_FAILED = /^Failed/
7
7
  TEST_PASSED = /^Passed/
8
+ TEST_SKIPPED = /^Skipped/
8
9
  TEST_SUMMARY = /^Total tests/
9
10
  TESTS_STARTED = /^Starting test execution, please wait...$/
10
11
 
@@ -58,6 +59,9 @@ module Dotpretty
58
59
  elsif input_line.match(TEST_FAILED)
59
60
  match = input_line.match(/^Failed\s+(.+)$/)
60
61
  state_machine.trigger(:test_failed, match[1])
62
+ elsif input_line.match(TEST_SKIPPED)
63
+ match = input_line.match(/^Skipped\s+(.+)$/)
64
+ state_machine.trigger(:test_skipped, match[1])
61
65
  elsif input_line.match(TEST_SUMMARY)
62
66
  state_machine.trigger(:tests_completed, input_line)
63
67
  else
@@ -130,6 +134,10 @@ module Dotpretty
130
134
  reporter.test_passed(test_name)
131
135
  end
132
136
 
137
+ def test_skipped(test_name)
138
+ reporter.test_skipped(test_name)
139
+ end
140
+
133
141
  private
134
142
 
135
143
  attr_accessor :build_failure_details, :current_failing_test, :reporter
@@ -5,6 +5,7 @@ module Dotpretty
5
5
  RESET="\e[0m"
6
6
  START_GREEN="\033[32m"
7
7
  START_RED="\033[31m"
8
+ START_YELLOW="\033[33m"
8
9
 
9
10
  def green(text)
10
11
  return "#{START_GREEN}#{text}#{RESET}"
@@ -14,6 +15,10 @@ module Dotpretty
14
15
  return "#{START_RED}#{text}#{RESET}"
15
16
  end
16
17
 
18
+ def yellow(text)
19
+ return "#{START_YELLOW}#{text}#{RESET}"
20
+ end
21
+
17
22
  end
18
23
  end
19
24
  end
@@ -10,6 +10,10 @@ module Dotpretty
10
10
  text
11
11
  end
12
12
 
13
+ def yellow(text)
14
+ text
15
+ end
16
+
13
17
  end
14
18
  end
15
19
  end
@@ -40,6 +40,7 @@ module Dotpretty
40
40
  transition :received_other_input, :waiting_for_test_input
41
41
  transition :test_failed, :waiting_for_failure_details, :reset_current_failing_test
42
42
  transition :test_passed, :waiting_for_test_input, :test_passed
43
+ transition :test_skipped, :waiting_for_test_input, :test_skipped
43
44
  transition :tests_completed, :done, :show_test_summary
44
45
  end
45
46
  state :waiting_for_failure_details do
@@ -1,8 +1,11 @@
1
+ require "dotpretty/reporters/test_summary_formatter"
2
+
1
3
  module Dotpretty
2
4
  module Reporters
3
5
  class Basic
4
6
 
5
7
  def initialize(colorer:, output:)
8
+ self.colorer = colorer
6
9
  self.extend(colorer)
7
10
  self.output = output
8
11
  end
@@ -31,6 +34,10 @@ module Dotpretty
31
34
  output.puts("#{green("Passed")} #{test_name}")
32
35
  end
33
36
 
37
+ def test_skipped(test_name)
38
+ output.puts("#{yellow("Skipped")} #{test_name}")
39
+ end
40
+
34
41
  def test_failed(failing_test)
35
42
  output.puts("#{red("Failed")} #{failing_test[:name]}")
36
43
  failing_test[:details].each do |line|
@@ -47,15 +54,13 @@ module Dotpretty
47
54
  private
48
55
 
49
56
  def colored_message(summary)
50
- message = "Total tests: #{summary[:totalTests]}. Passed: #{summary[:passedTests]}. Failed: #{summary[:failedTests]}. Skipped: #{summary[:skippedTests]}."
51
- if summary[:passedTests] == summary[:totalTests]
52
- return green(message)
53
- else
54
- return red(message)
55
- end
57
+ return Dotpretty::Reporters::TestSummaryFormatter.new({
58
+ colorer: colorer,
59
+ summary: summary
60
+ }).colored_message
56
61
  end
57
62
 
58
- attr_accessor :output
63
+ attr_accessor :colorer, :output
59
64
 
60
65
  end
61
66
  end
@@ -28,6 +28,13 @@ module Dotpretty
28
28
  }
29
29
  end
30
30
 
31
+ def test_skipped(test_name)
32
+ tests << {
33
+ name: test_name,
34
+ result: "skipped"
35
+ }
36
+ end
37
+
31
38
  def test_failed(failing_test)
32
39
  tests << failing_test.merge({
33
40
  result: "failed"
@@ -3,8 +3,10 @@ module Dotpretty
3
3
  class Progress
4
4
 
5
5
  def initialize(colorer:, output:)
6
+ self.colorer = colorer
6
7
  self.extend(colorer)
7
8
  self.failing_tests = []
9
+ self.skipped_test_names = []
8
10
  self.output = output
9
11
  end
10
12
 
@@ -27,6 +29,7 @@ module Dotpretty
27
29
  def show_test_summary(summary)
28
30
  output.puts("")
29
31
  output.puts("")
32
+ show_skipped_summary if !skipped_test_names.empty?
30
33
  show_failure_summary if !failing_tests.empty?
31
34
  output.puts(formatted_test_summary(summary))
32
35
  end
@@ -44,15 +47,18 @@ module Dotpretty
44
47
  output.print(green("."))
45
48
  end
46
49
 
50
+ def test_skipped(test_name)
51
+ skipped_test_names << test_name
52
+ output.print(yellow("*"))
53
+ end
54
+
47
55
  private
48
56
 
49
57
  def formatted_test_summary(summary)
50
- message = "Total tests: #{summary[:totalTests]}. Passed: #{summary[:passedTests]}. Failed: #{summary[:failedTests]}. Skipped: #{summary[:skippedTests]}."
51
- if summary[:totalTests] == summary[:passedTests]
52
- return green(message)
53
- else
54
- return red(message)
55
- end
58
+ return Dotpretty::Reporters::TestSummaryFormatter.new({
59
+ colorer: colorer,
60
+ summary: summary
61
+ }).colored_message
56
62
  end
57
63
 
58
64
  def show_failure_summary
@@ -68,7 +74,17 @@ module Dotpretty
68
74
  end
69
75
  output.puts("")
70
76
  end
71
- attr_accessor :failing_tests, :output
77
+
78
+ def show_skipped_summary
79
+ output.puts("Skipped:")
80
+ output.puts("")
81
+ skipped_test_names.each_with_index do |test_name, index|
82
+ output.puts(yellow(" #{index + 1}) #{test_name}"))
83
+ end
84
+ output.puts("")
85
+ end
86
+
87
+ attr_accessor :colorer, :failing_tests, :output, :skipped_test_names
72
88
 
73
89
  end
74
90
  end
@@ -0,0 +1,27 @@
1
+ module Dotpretty
2
+ module Reporters
3
+ class TestSummaryFormatter
4
+
5
+ def initialize(colorer:, summary:)
6
+ self.extend(colorer)
7
+ self.summary = summary
8
+ end
9
+
10
+ def colored_message
11
+ message = "Total tests: #{summary[:totalTests]}. Passed: #{summary[:passedTests]}. Failed: #{summary[:failedTests]}. Skipped: #{summary[:skippedTests]}."
12
+ if summary[:passedTests] == summary[:totalTests]
13
+ return green(message)
14
+ elsif summary[:failedTests] > 0
15
+ return red(message)
16
+ else
17
+ return yellow(message)
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ attr_accessor :summary
24
+
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotpretty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Meyer
@@ -28,6 +28,7 @@ files:
28
28
  - lib/dotpretty/reporters/json.rb
29
29
  - lib/dotpretty/reporters/names.rb
30
30
  - lib/dotpretty/reporters/progress.rb
31
+ - lib/dotpretty/reporters/test_summary_formatter.rb
31
32
  - lib/dotpretty/runner.rb
32
33
  - lib/dotpretty/state_details.rb
33
34
  - lib/dotpretty/state_machine.rb