minitest-nyan-cat 0.0.1
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 +7 -0
- data/lib/minitest/nyan_cat.rb +4 -0
- data/lib/minitest/nyan_cat_plugin.rb +122 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 07394006884c6e8b83b366c892ce0fdde4b1b5f6
|
4
|
+
data.tar.gz: d09c91e34a7353a84f54a0ded30954be468e5675
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 513e2716333f37a139a4145cdb2c88fdaf10b6415a575361fa21bcc41451157ade36b4a37d67839dd222d2baeca95facd21ff123a491b6d1a7591a75d916f9e2
|
7
|
+
data.tar.gz: 59f52ce20f9eae102b94c199d7bf6d9392f4df8a8d6e38e51a75585451d8be12166603c0db69f5636c2639b878a36f81edb11e154b4945ad0aebd79e0a16f92e
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require "minitest"
|
2
|
+
require 'nyan_cat_formatter/common'
|
3
|
+
|
4
|
+
module Minitest
|
5
|
+
def self.plugin_nyan_cat_options(opts, _options)
|
6
|
+
opts.on "-nyan", "--nyancat", "Nyan nyan nyan nyan nyan nyan nyan nyan nyan" do
|
7
|
+
NyanCat.nyan!
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.plugin_nyan_cat_init(options)
|
12
|
+
if NyanCat.nyan? then
|
13
|
+
io = NyanCat.new options[:io]
|
14
|
+
|
15
|
+
self.reporter.reporters.grep(Minitest::Reporter).each do |rep|
|
16
|
+
rep.io = io
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class NyanCat
|
22
|
+
include ::NyanCat::Common
|
23
|
+
|
24
|
+
attr_reader :output
|
25
|
+
|
26
|
+
def initialize(io)
|
27
|
+
@example_count = total_count
|
28
|
+
@current = @color_index = @passing_count = @failure_count = @pending_count = 0
|
29
|
+
@example_results = []
|
30
|
+
@output = io
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.nyan!
|
34
|
+
@nyan = true
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.nyan?
|
38
|
+
@nyan ||= false
|
39
|
+
end
|
40
|
+
|
41
|
+
def print(o)
|
42
|
+
case o
|
43
|
+
when "." then
|
44
|
+
@passing_count += 1
|
45
|
+
tick PASS
|
46
|
+
when "E", "F" then
|
47
|
+
@failure_count += 1
|
48
|
+
tick FAIL
|
49
|
+
when "S" then
|
50
|
+
@pending_count += 1
|
51
|
+
tick PENDING
|
52
|
+
else
|
53
|
+
output.print o
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def puts(*o)
|
58
|
+
if o.first =~ /Finished in (.+)s/
|
59
|
+
output.puts "\nYou've Nyaned for #{format_duration($1.to_f)}\n".each_char.map {|c| rainbowify(c)}.join
|
60
|
+
summary = "#{@example_count} example#{'s' unless @example_count == 1}, #{@failure_count} failure#{'s' unless @failure_count == 1}"
|
61
|
+
summary << ", #{@pending_count} pending" if @pending_count > 0
|
62
|
+
|
63
|
+
if @failure_count > 0
|
64
|
+
# Red background with white chars
|
65
|
+
output.puts "#{ESC}41m#{ESC}37m#{summary}#{NND}\n"
|
66
|
+
elsif pending_count > 0
|
67
|
+
# Gray background with white chars
|
68
|
+
output.puts "#{ESC}43m#{ESC}40m#{summary}#{NND}\n"
|
69
|
+
else
|
70
|
+
# Green background with white chars
|
71
|
+
output.puts "#{ESC}42m#{ESC}37m#{summary}#{NND}\n"
|
72
|
+
end
|
73
|
+
elsif o.first =~ /runs/
|
74
|
+
else
|
75
|
+
output.puts(o)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def method_missing(msg, *args)
|
80
|
+
output.send(msg, *args)
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
# Hack to get the total number of assertions
|
86
|
+
def total_count
|
87
|
+
Minitest::Runnable.runnables.map(&:runnable_methods).flatten.size
|
88
|
+
end
|
89
|
+
|
90
|
+
# Override method since it assumes RSpec is used
|
91
|
+
def wrap(text, code_or_symbol)
|
92
|
+
text
|
93
|
+
end
|
94
|
+
|
95
|
+
# Override to make it work with Minitest
|
96
|
+
def success_color(text)
|
97
|
+
"#{ESC}32m#{text}#{NND}"
|
98
|
+
end
|
99
|
+
|
100
|
+
# Override to make it work with Minitest
|
101
|
+
def pending_color(text)
|
102
|
+
"#{ESC}33m#{text}#{NND}"
|
103
|
+
end
|
104
|
+
|
105
|
+
# Override to make it work with Minitest
|
106
|
+
def failure_color(text)
|
107
|
+
"#{ESC}31m#{text}#{NND}"
|
108
|
+
end
|
109
|
+
|
110
|
+
# Override to make it work with Minitest
|
111
|
+
def scoreboard
|
112
|
+
padding = @example_count.to_s.length
|
113
|
+
|
114
|
+
[
|
115
|
+
@current.to_s.rjust(padding),
|
116
|
+
success_color(@passing_count.to_s.rjust(padding)),
|
117
|
+
failure_color(@failure_count.to_s.rjust(padding)),
|
118
|
+
pending_color(@pending_count.to_s.rjust(padding))
|
119
|
+
]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: minitest-nyan-cat
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alan Guo Xiang Tan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-05-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nyan-cat-formatter
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.11'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.11'
|
27
|
+
description:
|
28
|
+
email:
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/minitest/nyan_cat.rb
|
34
|
+
- lib/minitest/nyan_cat_plugin.rb
|
35
|
+
homepage: https://github.com/tgxworld/minitest-nyan-cat
|
36
|
+
licenses:
|
37
|
+
- MIT
|
38
|
+
metadata: {}
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options: []
|
41
|
+
require_paths:
|
42
|
+
- lib
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
requirements: []
|
54
|
+
rubyforge_project:
|
55
|
+
rubygems_version: 2.4.5
|
56
|
+
signing_key:
|
57
|
+
specification_version: 4
|
58
|
+
summary: Prints a Nyan Cat trail for your test output
|
59
|
+
test_files: []
|
60
|
+
has_rdoc:
|