minitest-documentation 0.0.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dec6b2d7fa607ee600072484f32f0d80253b90b8
4
- data.tar.gz: ebd2945b00789c8e69263f6aee6c15d12e258ae3
3
+ metadata.gz: 903b024afaacd5c5e1d47f8f01e86f457210fd09
4
+ data.tar.gz: 733731c8074c9ae06ded824f5235bd8dccfdaa3f
5
5
  SHA512:
6
- metadata.gz: 5b460e721becf923ab7d88f8956688d822d3d84e24cf7007c4e9b0a4de0397643dbb202bea22a23b2844f1485522f1a5fe5cc2c4e926640feef99e0cc765d4aa
7
- data.tar.gz: d200be636df5cba7ffb1af5cb21b45a61917906e05767a89fe06e9c3de6cd58ccdee552231da10e8eab99e64173f8ccf9cd05a201c318999d60f0270e57b25fc
6
+ metadata.gz: 774dced2d39c8a68e4a1f0aa7ff9572e0997cefaa686b72afcedd2535803e36c21af74b5823a0e451a626a896e51d4074223756ec935fa6c5ce16bbf35464214
7
+ data.tar.gz: 16ec6acee8ad707ecdc3a78a9d67ec2697c23a83c1a97e41cee6962bf8d1eb94b356dae44688da8d30116c12a736e9c6f1795f482c9a0f2176303f9d615804b1
data/README.md CHANGED
@@ -22,7 +22,8 @@ Minitest >= 5.0.0
22
22
 
23
23
  ## Usage
24
24
 
25
- Just pass `--documentation` as an argument while running your tests
25
+ Just pass `--documentation` as an argument while running your tests.
26
+ Or require `minitest/documentation` in your tests.
26
27
 
27
28
  ## What's the difference?
28
29
 
@@ -68,12 +69,6 @@ Epic Fail!
68
69
  You have skipped tests. Run with --verbose for details.
69
70
  ```
70
71
 
71
- ### Color
72
- If you add `--color` as an argument the output will be colorized
73
- - `pass` => Green
74
- - `skip` => Yellow
75
- - `fail` => Red
76
-
77
72
  ## Contributing
78
73
 
79
74
  1. Fork it ( http://github.com/teoljungberg/minitest-documentation/fork )
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ ENV["RUBYOPT"] = "-w"
6
+ t.pattern = "test/**/*_test.rb"
7
+ t.libs << "test"
8
+ end
9
+ task :default => :test
@@ -1,73 +1,4 @@
1
- module Minitest
2
- class DocumentationReporter < Reporter
3
- ESC = "\e["
4
- NND = "#{ESC}0m"
5
- GREEN = "#{ESC}32m"
6
- RED = "#{ESC}31m"
7
- YELLOW = "#{ESC}33m"
1
+ require 'minitest'
8
2
 
9
- def self.documentation!
10
- @documentation = true
11
- end
12
-
13
- def self.documentation?
14
- @documentation ||= false
15
- end
16
-
17
- def self.color!
18
- @color = true
19
- end
20
-
21
- def self.color?
22
- @color ||= false
23
- end
24
-
25
- def record result
26
- output_klass_name result.class if self.class.documentation?
27
- print_colorized_progress result if self.class.color?
28
-
29
- if self.class.documentation?
30
- test = test_name result
31
- io.print " "
32
- io.puts stringify_test_name(test)
33
- end
34
- io.print NND
35
- end
36
-
37
- private
38
-
39
- def color_code result
40
- color_code = case result.result_code
41
- when "."
42
- GREEN
43
- when "E", "F"
44
- RED
45
- when "S"
46
- YELLOW
47
- end
48
- color_code
49
- end
50
-
51
- def print_colorized_progress result
52
- io.print color_code(result)
53
- io.print result.result_code unless self.class.documentation?
54
- end
55
-
56
- def output_klass_name k
57
- if k != @klass
58
- @klass = k
59
- io.puts @klass
60
- end
61
- end
62
-
63
- def test_name o
64
- o.instance_variable_get "@NAME"
65
- end
66
-
67
- def stringify_test_name test
68
- test.
69
- sub("test_", "").
70
- gsub("_", " ")
71
- end
72
- end
73
- end
3
+ Minitest.load_plugins
4
+ Minitest::Documentation.documentation!
@@ -1,21 +1,56 @@
1
- require 'minitest/documentation'
1
+ require 'minitest'
2
2
 
3
3
  module Minitest
4
4
  def self.plugin_documentation_options opts, options
5
5
  opts.on "--documentation", "Documentation formatter" do
6
- DocumentationReporter.documentation!
7
- end
8
-
9
- opts.on "--color", "Colorize the output" do
10
- DocumentationReporter.color!
6
+ Documentation.documentation!
11
7
  end
12
8
  end
13
9
 
14
10
  def self.plugin_documentation_init options
15
- if DocumentationReporter.documentation? || DocumentationReporter.color?
11
+ if Documentation.documentation?
16
12
  io = options.delete(:io) || $stdout
17
13
  self.reporter.reporters.reject! {|o| o.is_a? ProgressReporter }
18
- self.reporter.reporters << DocumentationReporter.new(io, options)
14
+ self.reporter.reporters << Documentation.new(io, options)
15
+ end
16
+ end
17
+
18
+ class Documentation < Reporter
19
+ INDENT = " "
20
+
21
+ def self.documentation!
22
+ @documentation = true
23
+ end
24
+
25
+ def self.documentation?
26
+ @documentation ||= false
27
+ end
28
+
29
+ def record result
30
+ format_test_klass result
31
+
32
+ io.print INDENT
33
+ io.puts format_test_name(result)
34
+ end
35
+
36
+ private
37
+
38
+ def format_test_klass klass
39
+ @klass ||= ""
40
+ if klass.class != @klass
41
+ @klass = klass.class
42
+ io.puts @klass
43
+ end
44
+ end
45
+
46
+ def test_name o
47
+ o.instance_variable_get "@NAME"
48
+ end
49
+
50
+ def format_test_name test
51
+ test_name(test).
52
+ sub("test_", "").
53
+ gsub("_", " ")
19
54
  end
20
55
  end
21
56
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "minitest-documentation"
5
- spec.version = "0.0.4"
5
+ spec.version = "1.0.0"
6
6
  spec.authors = ["Teo Ljungberg"]
7
7
  spec.email = ["teo.ljungberg@gmail.com"]
8
8
  spec.summary = %q{Rspec like documentation for Minitest}
@@ -0,0 +1,26 @@
1
+ require_relative 'test_case'
2
+ require 'minitest/documentation'
3
+
4
+ module Minitest
5
+ class DocumentationFormatTest < TestCase
6
+ def setup
7
+ Documentation.documentation!
8
+ ExampleTest.generate_tests!
9
+ self.reporter = Documentation.new io
10
+ end
11
+ attr_accessor :reporter
12
+
13
+ def test_documentation_format
14
+ ExampleTest.run reporter
15
+
16
+ exp_format = <<-EOS
17
+ Minitest::TestCase::ExampleTest
18
+ a very long sentence
19
+ pass
20
+ verbosity
21
+ EOS
22
+
23
+ assert_equal exp_format, io.string
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ require 'minitest/autorun'
2
+ require 'stringio'
3
+
4
+ module Minitest
5
+ class TestCase < Test
6
+ ExampleTest = Class.new(Test) {
7
+ i_suck_and_my_tests_are_order_dependent!
8
+
9
+ def self.generate_tests!
10
+ define_method(:test_pass) { assert 'truthy' }
11
+ define_method(:test_verbosity) { assert 'truthy' }
12
+ define_method(:test_a_very_long_sentence) { assert 'truthy' }
13
+ end
14
+ }
15
+
16
+ def io
17
+ @io ||= StringIO.new
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-documentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Teo Ljungberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-18 00:00:00.000000000 Z
11
+ date: 2014-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -68,6 +68,8 @@ files:
68
68
  - lib/minitest/documentation.rb
69
69
  - lib/minitest/documentation_plugin.rb
70
70
  - minitest-documentation.gemspec
71
+ - test/minitest/documentation_test.rb
72
+ - test/minitest/test_case.rb
71
73
  homepage: https://github.com/teoljungberg/minitest-documentation
72
74
  licenses:
73
75
  - MIT
@@ -88,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
90
  version: '0'
89
91
  requirements: []
90
92
  rubyforge_project:
91
- rubygems_version: 2.2.0
93
+ rubygems_version: 2.2.2
92
94
  signing_key:
93
95
  specification_version: 4
94
96
  summary: Rspec like documentation for Minitest