minitest-tags 0.0.2
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.
- data/Gemfile +9 -0
- data/README +9 -0
- data/Rakefile +20 -0
- data/lib/minitest/tags.rb +31 -0
- data/lib/minitest/version.rb +3 -0
- data/lib/minitest_tags.rb +16 -0
- data/test/foo_spec.rb +14 -0
- data/test/helper.rb +4 -0
- data/test/it_overrider.rb +24 -0
- data/test/ttt_spec.rb +13 -0
- metadata +78 -0
data/Gemfile
ADDED
data/README
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "rake/testtask"
|
3
|
+
require "bundler/setup"
|
4
|
+
Bundler.require :production
|
5
|
+
|
6
|
+
Rake::TestTask.new do |test|
|
7
|
+
test.libs << "feaure"
|
8
|
+
test.test_files = FileList["tests/**/*_spec.rb"]
|
9
|
+
test.verbose = true
|
10
|
+
end
|
11
|
+
|
12
|
+
namespace :test do
|
13
|
+
desc "override the 'it' method to invoke the test case that marked by tag "
|
14
|
+
task :on, :tag do |t, args|
|
15
|
+
ENV["TAG"] = args[:tag]
|
16
|
+
require 'minitest-tags'
|
17
|
+
Rake::Task[:test].invoke
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Minitest
|
2
|
+
module Tags
|
3
|
+
def self.included(base)
|
4
|
+
base.class_eval do
|
5
|
+
remove_method :it
|
6
|
+
extend ClassMethods
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
def it desc, &block
|
12
|
+
tags = desc.match(/\(([\s\S]+)\)/)[1].split(",").map(&:strip) if desc.match(/\(([\s\S]+)\)/)
|
13
|
+
tags = tags || []
|
14
|
+
tag = ENV["TAG"]
|
15
|
+
block = proc { skip "(only the desc including tag #{tag} available)" } unless tags.include?(tag)
|
16
|
+
block ||= proc { skip "(no tests defined)" }
|
17
|
+
|
18
|
+
@specs ||= 0
|
19
|
+
@specs += 1
|
20
|
+
|
21
|
+
name = "test_%04d_%s" % [ @specs, desc.gsub(/\W+/, '_').downcase ]
|
22
|
+
|
23
|
+
define_method name, &block
|
24
|
+
|
25
|
+
self.children.each do |mod|
|
26
|
+
mod.send :undef_method, name if mod.public_method_defined? name
|
27
|
+
end
|
28
|
+
end # it
|
29
|
+
end # ClassMethods
|
30
|
+
end #Tags
|
31
|
+
end #Minitest
|
data/test/foo_spec.rb
ADDED
data/test/helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
if defined?(MiniTest)
|
2
|
+
class << MiniTest::Spec
|
3
|
+
remove_method :it
|
4
|
+
def it desc, &block
|
5
|
+
tags = desc.match(/\(([\s\S]+)\)/)[1].split(",").map(&:strip) if desc.match(/\(([\s\S]+)\)/)
|
6
|
+
tags = tags || []
|
7
|
+
tag = ENV["TAG"]
|
8
|
+
block = proc { skip "(only the desc including tag #{tag} available)" } unless tags.include?(tag)
|
9
|
+
block ||= proc { skip "(no tests defined)" }
|
10
|
+
|
11
|
+
@specs ||= 0
|
12
|
+
@specs += 1
|
13
|
+
|
14
|
+
name = "test_%04d_%s" % [ @specs, desc.gsub(/\W+/, '_').downcase ]
|
15
|
+
|
16
|
+
define_method name, &block
|
17
|
+
|
18
|
+
self.children.each do |mod|
|
19
|
+
mod.send :undef_method, name if mod.public_method_defined? name
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
data/test/ttt_spec.rb
ADDED
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: minitest-tags
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.2
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- wenbo
|
9
|
+
- Lorenzo Planas
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
|
14
|
+
date: 2011-06-09 00:00:00 +08:00
|
15
|
+
default_executable:
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: minitest
|
19
|
+
prerelease: false
|
20
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
22
|
+
requirements:
|
23
|
+
- - ~>
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 2.2.2
|
26
|
+
type: :development
|
27
|
+
version_requirements: *id001
|
28
|
+
description: " when you invode the it method that coming with Minitest::Spec, \n you can tag a test case by the words that quoted by parenthesis, then \n specify the tag at your rake task, and the test case related to this tag \n will be invoked\n"
|
29
|
+
email:
|
30
|
+
- yiyun6674@hotmail.com
|
31
|
+
- lplanas@qindio.com
|
32
|
+
executables: []
|
33
|
+
|
34
|
+
extensions: []
|
35
|
+
|
36
|
+
extra_rdoc_files: []
|
37
|
+
|
38
|
+
files:
|
39
|
+
- Gemfile
|
40
|
+
- README
|
41
|
+
- Rakefile
|
42
|
+
- lib/minitest/tags.rb
|
43
|
+
- lib/minitest/version.rb
|
44
|
+
- lib/minitest_tags.rb
|
45
|
+
- test/foo_spec.rb
|
46
|
+
- test/helper.rb
|
47
|
+
- test/it_overrider.rb
|
48
|
+
- test/ttt_spec.rb
|
49
|
+
has_rdoc: true
|
50
|
+
homepage: ""
|
51
|
+
licenses: []
|
52
|
+
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: "0"
|
70
|
+
requirements: []
|
71
|
+
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 1.6.2
|
74
|
+
signing_key:
|
75
|
+
specification_version: 3
|
76
|
+
summary: add tags for minitest
|
77
|
+
test_files: []
|
78
|
+
|