testme 0.4.85 → 0.5.3

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/.gitignore CHANGED
@@ -5,3 +5,4 @@ doc
5
5
  /Gemfile.lock
6
6
  /notes
7
7
  /*.gem
8
+ /test/app.test.rb
data/.testme CHANGED
@@ -1,6 +1,8 @@
1
1
  require "testme"
2
2
 
3
- TESTME_DIR = '/test/'
4
- TESTME_SUFFIX = '.test.rb'
5
- TESTME_FORMAT = :console
6
- TESTME_COLORS = :default
3
+ boot :test, '/test' do
4
+ testme.dir = '/test/'
5
+ testme.suffix = '.test.rb'
6
+ testme.format = :console
7
+ testme.colors = :default
8
+ end
data/README.md CHANGED
@@ -45,19 +45,23 @@
45
45
 
46
46
  `testme setup`
47
47
 
48
- /.testme
49
- /test/
50
- /test/app.test.rb
48
+ ## Config
49
+
50
+ In your project root will be a `.testme` file, this is your bootstrap that runs before your tests
51
+
52
+ The `/test/` folder will house all your test files, you can change this in your bootstrap
53
+
54
+ ## Bootstrap
51
55
 
52
56
  *Default .testme boiler plate on setup*
53
57
  *this might need to be reconfigured to cater to your project*
54
58
 
55
59
  require "testme"
56
60
 
57
- TESTME_DIR = '/test/'
58
- TESTME_SUFFIX = '.test.rb'
59
- TESTME_FORMAT = :console
60
- TESTME_COLORS = :default
61
+ testme.dir = '/test/'
62
+ testme.suffix = '.test.rb'
63
+ testme.format = :console
64
+ testme.colors = :default
61
65
 
62
66
  #### Example config with bundler
63
67
 
@@ -66,28 +70,42 @@
66
70
  require "bundler/setup"
67
71
  Bundler.require :default, :test
68
72
 
69
- TESTME_DIR = '/test/'
70
- TESTME_SUFFIX = '.test.rb'
71
- TESTME_FORMAT = :console
72
- TESTME_COLORS = :default
73
+ testme.dir = '/test/'
74
+ testme.suffix = '.test.rb'
75
+ testme.format = :console
76
+ testme.colors = :default
73
77
 
74
- ## Config
78
+ #### Named bootstraps are also possible
75
79
 
76
- In your project root will be a `.testme` file, this is your bootstrap that runs before your tests
80
+ require "testme"
77
81
 
78
- The `/test/` folder will house all your test files, you can change this in your bootstrap
82
+ boot :test, '/test' do
83
+ testme.dir = '/test/'
84
+ testme.suffix = '.test.rb'
85
+ testme.format = :console
86
+ testme.colors = :default
87
+ end
88
+
89
+ boot :quiet, '/test' do
90
+ testme.dir = '/test/'
91
+ testme.suffix = '.test.rb'
92
+ testme.format = :none
93
+ end
79
94
 
80
95
  ### Config options
81
96
 
82
- TESTME_DIR = '/test/'
97
+ `testme.dir`
83
98
  * default: '/test/'
84
99
 
85
- TESTME_FORMAT = :console
100
+ `testme.suffix`
101
+ * default: '.test.rb'
102
+
103
+ `testme.format`
86
104
  * choose how results are displayed
87
105
  * options: :none, :text, :console
88
106
  * default: :console
89
107
 
90
- TESTME_COLORS = :default
108
+ `testme.colors`
91
109
  * color scheme for console output
92
110
  * options: :default
93
111
  * default: :default
@@ -101,6 +119,10 @@ default test folder: `/test/**/*`
101
119
 
102
120
  $ testme
103
121
 
122
+ #### Test with named bootstrap
123
+
124
+ $ testme :test
125
+
104
126
  #### Test all in directory
105
127
 
106
128
  $ testme test/features
data/bin/testme CHANGED
@@ -1,72 +1,74 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- if ARGV[0] == 'setup'
3
+ @testme_boot = {}
4
+ def boot name, folder, &block
5
+ @testme_boot[name.to_sym] = [folder, block]
6
+ end
4
7
 
5
- puts 'Creating bootstrap "/.testme"'
8
+ def testme_load filepath
9
+ if @file.include?(TestMe::testme.suffix)
10
+ testme do
11
+ load filepath
12
+ end
13
+ else
14
+ load filepath
15
+ end
16
+ end
6
17
 
18
+ def testme_setup
19
+ puts 'Creating bootstrap "/.testme"'
7
20
  File.open("./.testme", "w") {|f| f.write(
8
21
  %q[require "testme"
9
22
 
10
- TESTME_DIR = '/test/'
11
- TESTME_SUFFIX = '.test.rb'
12
- TESTME_FORMAT = :console
13
- TESTME_COLORS = :default]
23
+ testme.dir = '/test/'
24
+ testme.suffix = '.test.rb'
25
+ testme.format = :console
26
+ testme.colors = :default
27
+ ]
14
28
  )} unless File.exists?("./.testme")
15
-
16
29
  puts 'Creating test folder "/test"'
17
-
18
30
  Dir::mkdir('./test/') unless File.directory?("./test/") || File.exists?("./test/")
19
-
20
31
  puts 'Creating empty test file "/app.test.rb"'
32
+ File.open('./test/app.test.rb', 'w') {|f| f.write("")} unless File.exists?("./.test/app.test.rb")
33
+ puts 'Setup complete'
34
+ end
21
35
 
22
- File.open('./test/app.test.rb', 'w') {|f| f.write(
23
- ""
24
- )} unless File.exists?("./.test/app#{TestMe::TESTME_SUFFIX}")
36
+ if ARGV[0] == 'setup'
37
+ testme_setup
38
+ exit
39
+ end
25
40
 
26
- puts 'Setup complete'
41
+ TESTME_INIT = true
27
42
 
43
+ if File.exists?("#{Dir.pwd}/.testme")
44
+ load "#{Dir.pwd}/.testme"
28
45
  else
46
+ require "testme"
47
+ end
29
48
 
30
- TESTME_INIT = true
31
-
32
- if File.exists?("#{Dir.pwd}/.testme")
33
- load "#{Dir.pwd}/.testme"
34
- else
35
- require "testme"
49
+ TESTME_RUNNING = true
50
+
51
+ if ARGV.empty?
52
+ testme do
53
+ Dir["#{Dir.pwd}/#{testme.DIR}/**/*#{testme.suffix}"].each{|f| load f }
36
54
  end
55
+ elsif ARGV[0][0] == ':'
56
+ o = @testme_boot[ARGV[0][1..-1].to_sym][1]
57
+ o.call
37
58
 
38
- TESTME_RUNNING = true
39
-
40
- if ARGV.empty?
41
- testme do
42
- Dir["#{Dir.pwd}/#{TestMe::TESTME_DIR}/**/*#{TestMe::TESTME_SUFFIX}"].each{|f| load f }
43
- end
44
-
45
- else
46
- ARGV.each do |arg|
47
- @file = "#{Dir.pwd}/#{arg}"
59
+ Dir["#{o[0]}/**/*#{testme.suffix}"].each do |f|
60
+ testme_load(f)
61
+ end
62
+ else
63
+ ARGV.each do |arg|
64
+ @file = "#{Dir.pwd}/#{arg}"
48
65
 
49
- # Check if directory
50
- if File.directory? @file
51
- Dir["#{@file}/**/*.rb"].each do |f|
52
- if @file.include? TestMe::TESTME_SUFFIX
53
- testme do
54
- load @file
55
- end
56
- else
57
- load @file
58
- end
59
- elsif File.exists? @file
60
- if @file.include? TestMe::TESTME_SUFFIX
61
- testme do
62
- load @file
63
- end
64
- else
65
- load @file
66
- end
66
+ if File.directory?(@file)
67
+ Dir["#{@file}/**/*#{testme.suffix}"].each do |f|
68
+ testme_load(@file)
67
69
  end
70
+ elsif File.exists?(@file)
71
+ testme_load(@file)
68
72
  end
69
-
70
73
  end
71
-
72
74
  end
data/lib/logic.rb CHANGED
@@ -1,12 +1,4 @@
1
- def testme &block
2
- if defined? TESTME_RUNNING
3
- extend TestMe
4
- block.call
5
- end
6
- end
7
-
8
1
  module TestMe
9
-
10
2
  def topic
11
3
  @topic
12
4
  end
@@ -16,7 +8,7 @@ module TestMe
16
8
  @before = nil
17
9
  @contexts = {}
18
10
 
19
- @@formatter ||= Formatter::create(TESTME_FORMAT)
11
+ @@formatter ||= Formatter::create(testme.format)
20
12
  @@formatter.test topic
21
13
 
22
14
  @topic_class = topic
data/lib/testme.rb CHANGED
@@ -5,6 +5,7 @@
5
5
  #********************************************************************#
6
6
 
7
7
  module TestMe
8
+ # Dummy interface for inline tests - you don't want tests to run at application runtime!
8
9
 
9
10
  # ---------------------------------------------------------------- #
10
11
  # Alleviate the 'the big ball of mud'
@@ -43,32 +44,57 @@ module TestMe
43
44
  def is? *args, █ end
44
45
  # ---------------------------------------------------------------- #
45
46
 
47
+ # Create a base context
48
+ # Re-runs every time 'given' is called
49
+ # ` before do <block> end `
50
+ def before &block; end
51
+ # ---------------------------------------------------------------- #
52
+
53
+ # ---------------------------------------------------------------- #
54
+ # Config Module
55
+ # ---------------------------------------------------------------- #
56
+ require "configatron"
57
+ @config = Configatron::Store.new
58
+
59
+ # Defaults
60
+ @config.dir = '/test/'
61
+ @config.suffix = '.test.rb'
62
+ @config.format = :console
63
+ @config.colors = :default
64
+
65
+ def self.config; @config; end
46
66
  end
47
67
 
48
68
  # ---------------------------------------------------------------- #
49
- # Inline Testing
69
+ # Test Runner : Inline Testing
50
70
  # ---------------------------------------------------------------- #
51
- def testme &block; end
71
+ def testme &block
72
+ if block && defined? TESTME_RUNNING && block
73
+ extend TestMe
74
+ block.call
75
+ end
76
+
77
+ return TestMe::config
78
+ end
52
79
 
53
80
  # ---------------------------------------------------------------- #
54
81
  # Optional configuration
55
82
  # ---------------------------------------------------------------- #
56
- module TestMe
57
- TESTME_DIR = defined?(::TESTME_DIR) ? ::TESTME_DIR : '/test/'
58
- # default: '/test/'
83
+ #testme.dir
84
+ # default: '/test/'
59
85
 
60
- TESTME_SUFFIX = defined?(::TESTME_SUFFIX) ? ::TESTME_SUFFIX : '.test.rb'
86
+ #testme.suffix
87
+ # default: '.test.rb'
61
88
 
62
- TESTME_FORMAT = defined?(::TESTME_FORMAT) ? ::TESTME_FORMAT : :console
63
- # choose how results are displayed
64
- # options: :none, :text, :console
65
- # default: :console
89
+ #testme.format
90
+ # choose how results are displayed
91
+ # options: :none, :text, :console
92
+ # default: :console
66
93
 
67
- TESTME_COLORS = defined?(::TESTME_COLORS) ? ::TESTME_COLORS : :default
68
- # color scheme for console output
69
- # options: :default
70
- # default: :default
71
- end
94
+ #testme.colors
95
+ # color scheme for console output
96
+ # options: :default
97
+ # default: :default
72
98
 
73
99
  # ---------------------------------------------------------------- #
74
100
 
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  TESTME_INIT = true
2
2
  TESTME_RUNNING = true
3
- TESTME_FORMAT = :none
4
3
 
5
4
  require 'rubygems'
6
5
  require 'bundler/setup'
7
6
  Bundler.require :default
7
+
8
+ testme.dir = '/test/'
9
+ testme.suffix = '.test.rb'
10
+ testme.format = :none
11
+ testme.colors = :default
data/testme.gemspec CHANGED
@@ -27,4 +27,5 @@ Gem::Specification.new do |s|
27
27
 
28
28
  s.add_runtime_dependency('rainbow', ['>= 1.1.3'])
29
29
  s.add_runtime_dependency('colorize', ['>= 0.5.8'])
30
+ s.add_runtime_dependency('configatron', ['>= 2.9.1'])
30
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.85
4
+ version: 0.5.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-08 00:00:00.000000000 Z
12
+ date: 2012-08-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rainbow
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.5.8
46
+ - !ruby/object:Gem::Dependency
47
+ name: configatron
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 2.9.1
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.9.1
46
62
  description: ! ' Minimalistic testing framework
47
63
 
48
64
  '
@@ -85,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
101
  version: '0'
86
102
  segments:
87
103
  - 0
88
- hash: -363458065
104
+ hash: 734885775
89
105
  required_rubygems_version: !ruby/object:Gem::Requirement
90
106
  none: false
91
107
  requirements:
@@ -94,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
110
  version: '0'
95
111
  segments:
96
112
  - 0
97
- hash: -363458065
113
+ hash: 734885775
98
114
  requirements: []
99
115
  rubyforge_project:
100
116
  rubygems_version: 1.8.24