minitest-tags 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source :gemcutter
2
+
3
+ group :production do
4
+ gem "minitest", "2.2.2"
5
+ end
6
+
7
+ group :develoment do
8
+ gem "ruby-debug19"
9
+ end
data/README ADDED
@@ -0,0 +1,9 @@
1
+ to run all test, just
2
+ rake test
3
+
4
+
5
+ rake test:on[follow] # only invoke the test case the desc inlcuding "follow" quoted by parenthesis
6
+ rake test:on[login] # only invoke the test case the desc inlcuding "login" quoted by parenthesis
7
+
8
+
9
+
@@ -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
@@ -0,0 +1,3 @@
1
+ module Minitest
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,16 @@
1
+ unless defined?(MiniTest)
2
+ begin
3
+ require "minitest/autorun"
4
+ rescue
5
+ require "rubygems"
6
+ require "minitest/autorun"
7
+ end
8
+ end
9
+
10
+ if ENV["TAG"]
11
+ require "minitest/tags"
12
+ class MiniTest::Spec
13
+ include Minitest::Tags
14
+ end
15
+ end
16
+
@@ -0,0 +1,14 @@
1
+ #encoding: utf-8
2
+ require_relative 'helper'
3
+ describe "foo" do
4
+
5
+ it "foo" do
6
+ true.must_equal true
7
+ end
8
+
9
+ it "dummy" do
10
+ true.must_equal true
11
+ end
12
+
13
+ end
14
+
@@ -0,0 +1,4 @@
1
+ require "bundler/setup"
2
+ Bundler.require :production
3
+ require "minitest/autorun"
4
+ require_relative 'it_overrider' if ENV["TAG"]
@@ -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
@@ -0,0 +1,13 @@
1
+ #encoding: utf-8
2
+ require_relative 'helper'
3
+ describe "TTTTTT" do
4
+ it "ttt(follow,login)" do
5
+ true.must_equal true
6
+ end
7
+
8
+ it "tttt doom " do
9
+ true.must_equal true
10
+ end
11
+
12
+ end
13
+
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
+