all_green 0.0.1 → 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/README.md +4 -3
- data/all_green.gemspec +3 -1
- data/lib/all_green.rb +1 -0
- data/lib/all_green/base_engine.rb +28 -19
- data/lib/all_green/engines/cucumber.rb +16 -0
- data/lib/all_green/engines/rails.rb +46 -0
- data/lib/all_green/engines/rspec.rb +3 -0
- data/lib/all_green/engines/spinach.rb +3 -0
- data/lib/all_green/runner.rb +9 -1
- data/lib/all_green/version.rb +1 -1
- data/spec/base_engine_spec.rb +7 -1
- data/spec/runner_spec.rb +7 -2
- metadata +18 -11
data/README.md
CHANGED
@@ -6,8 +6,10 @@ AllGreen will handle exit codes so it's perfect for using with continuous integr
|
|
6
6
|
|
7
7
|
Currently AllGreen will auto-detect :
|
8
8
|
|
9
|
-
* RSpec
|
10
|
-
*
|
9
|
+
* [RSpec](https://github.com/dchelimsky/rspec)
|
10
|
+
* [Rails tests](https://github.com/rails/rails)
|
11
|
+
* [Cucumber](https://github.com/cucumber/cucumber)
|
12
|
+
* [Spinach](https://github.com/codegram/spinach)
|
11
13
|
|
12
14
|
## Installation
|
13
15
|
|
@@ -31,7 +33,6 @@ Run all tests
|
|
31
33
|
|
32
34
|
## Roadmap
|
33
35
|
|
34
|
-
* Add support for popular testing frameworks : Cucumber, MiniTest, Rails unit test
|
35
36
|
* Pass configuration options for each engine
|
36
37
|
* Set tests order
|
37
38
|
|
data/all_green.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.email = ["kbackowski@gmail.com"]
|
7
7
|
gem.description = %q{Run all your test suites (rspec, cucumber, rails unit tests and more...) using one command}
|
8
8
|
gem.summary = %q{Run all your test suites (rspec, cucumber, rails unit tests and more...) using one command}
|
9
|
-
gem.homepage =
|
9
|
+
gem.homepage = 'http://github.com/kbackowski/all_green'
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -14,4 +14,6 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.name = "all_green"
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = AllGreen::VERSION
|
17
|
+
|
18
|
+
gem.add_runtime_dependency 'colorize'
|
17
19
|
end
|
data/lib/all_green.rb
CHANGED
@@ -1,28 +1,37 @@
|
|
1
1
|
module AllGreen
|
2
2
|
class BaseEngine
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
class << self
|
4
|
+
attr_accessor :engine_name
|
5
|
+
|
6
|
+
def load
|
7
|
+
begin
|
8
|
+
self.load_gem
|
9
|
+
rescue LoadError
|
10
|
+
return false
|
11
|
+
end
|
12
|
+
true
|
8
13
|
end
|
9
|
-
true
|
10
|
-
end
|
11
14
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
result
|
15
|
+
def run
|
16
|
+
log("Running #{@engine_human_name}\n".colorize(:light_green))
|
17
|
+
result = run_gem
|
18
|
+
if result.is_a? Integer
|
19
|
+
result == 1 ? result = false : result = true
|
20
|
+
end
|
21
|
+
!!result
|
16
22
|
end
|
17
|
-
!!result
|
18
|
-
end
|
19
|
-
end
|
20
23
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
+
def log(msg)
|
25
|
+
puts msg
|
26
|
+
end
|
27
|
+
|
28
|
+
def load_gem
|
29
|
+
raise 'Not Implemented'
|
30
|
+
end
|
24
31
|
|
25
|
-
|
26
|
-
|
32
|
+
def run_gem
|
33
|
+
raise 'Not Implemented'
|
34
|
+
end
|
35
|
+
end
|
27
36
|
end
|
28
37
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module AllGreen::Engines
|
2
|
+
class CucumberEngine < AllGreen::BaseEngine
|
3
|
+
@engine_name = :cucumber
|
4
|
+
@engine_human_name = 'Cucumber'
|
5
|
+
|
6
|
+
def self.load_gem
|
7
|
+
require 'cucumber'
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.run_gem
|
11
|
+
# Cucumber returns true when fails and false when succeed
|
12
|
+
!Cucumber::Cli::Main.execute(ARGV)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module AllGreen::Engines
|
2
|
+
class RailsEngine < AllGreen::BaseEngine
|
3
|
+
@engine_name = :rails_tests
|
4
|
+
@engine_human_name = 'Rails Tests'
|
5
|
+
|
6
|
+
def self.load_gem
|
7
|
+
require 'rails'
|
8
|
+
require 'rake/testtask'
|
9
|
+
require 'rails/test_unit/sub_test_task'
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run_gem
|
13
|
+
errors = []
|
14
|
+
|
15
|
+
Rails::SubTestTask.new(:units) do |t|
|
16
|
+
t.libs << 'test'
|
17
|
+
t.pattern = 'test/unit/**/*_test.rb'
|
18
|
+
end
|
19
|
+
|
20
|
+
Rails::SubTestTask.new(:functionals) do |t|
|
21
|
+
t.libs << 'test'
|
22
|
+
t.pattern = 'test/functional/**/*_test.rb'
|
23
|
+
end
|
24
|
+
|
25
|
+
Rails::SubTestTask.new(:integration) do |t|
|
26
|
+
t.libs << 'test'
|
27
|
+
t.pattern = 'test/integration/**/*_test.rb'
|
28
|
+
end
|
29
|
+
|
30
|
+
%w(units functionals integration).each do |task|
|
31
|
+
begin
|
32
|
+
Rake::Task[task].invoke
|
33
|
+
rescue => e
|
34
|
+
errors << { :task => task, :exception => e }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if errors.any?
|
39
|
+
log errors.map { |e| "Errors running test:#{e[:task]}! #{e[:exception].inspect}" }.join("\n")
|
40
|
+
return false
|
41
|
+
end
|
42
|
+
true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
data/lib/all_green/runner.rb
CHANGED
@@ -2,9 +2,13 @@ require 'rspec'
|
|
2
2
|
|
3
3
|
module AllGreen
|
4
4
|
class Runner
|
5
|
-
def initialize
|
5
|
+
def initialize(options = {})
|
6
|
+
@options = options
|
7
|
+
@options[:order] ||= [:rspec, :rails_tests, :cucumber, :spinach]
|
8
|
+
|
6
9
|
@engines = []
|
7
10
|
load_engines
|
11
|
+
sort_engines
|
8
12
|
end
|
9
13
|
|
10
14
|
def run
|
@@ -22,5 +26,9 @@ module AllGreen
|
|
22
26
|
def load_engine(engine)
|
23
27
|
@engines << engine if engine.load
|
24
28
|
end
|
29
|
+
|
30
|
+
def sort_engines
|
31
|
+
@engines.sort_by! { |e| @options[:order].index(e.engine_name) || 99 }
|
32
|
+
end
|
25
33
|
end
|
26
34
|
end
|
data/lib/all_green/version.rb
CHANGED
data/spec/base_engine_spec.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
class TestEngine < AllGreen::BaseEngine
|
3
|
+
class TestEngine < AllGreen::BaseEngine
|
4
|
+
@engine_name = :test_engine
|
5
|
+
end
|
4
6
|
|
5
7
|
describe AllGreen::BaseEngine do
|
6
8
|
describe '.load' do
|
@@ -21,6 +23,10 @@ describe AllGreen::BaseEngine do
|
|
21
23
|
end
|
22
24
|
|
23
25
|
describe '.run' do
|
26
|
+
before do
|
27
|
+
AllGreen::BaseEngine.stub(:log)
|
28
|
+
end
|
29
|
+
|
24
30
|
it 'should invoke .run_gem' do
|
25
31
|
TestEngine.should_receive(:run_gem)
|
26
32
|
TestEngine.run
|
data/spec/runner_spec.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
class TestEngine1 < AllGreen::BaseEngine
|
4
|
-
|
3
|
+
class TestEngine1 < AllGreen::BaseEngine
|
4
|
+
@engine_name = :test_engine1
|
5
|
+
end
|
6
|
+
|
7
|
+
class TestEngine2 < AllGreen::BaseEngine
|
8
|
+
@engine_name = :test_engine2
|
9
|
+
end
|
5
10
|
|
6
11
|
describe AllGreen::Runner do
|
7
12
|
describe '#run' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: all_green
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-08-12 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: colorize
|
16
|
+
requirement: &15179820 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *15179820
|
14
25
|
description: Run all your test suites (rspec, cucumber, rails unit tests and more...)
|
15
26
|
using one command
|
16
27
|
email:
|
@@ -31,6 +42,8 @@ files:
|
|
31
42
|
- lib/all_green.rb
|
32
43
|
- lib/all_green/base_engine.rb
|
33
44
|
- lib/all_green/command_line.rb
|
45
|
+
- lib/all_green/engines/cucumber.rb
|
46
|
+
- lib/all_green/engines/rails.rb
|
34
47
|
- lib/all_green/engines/rspec.rb
|
35
48
|
- lib/all_green/engines/spinach.rb
|
36
49
|
- lib/all_green/runner.rb
|
@@ -38,7 +51,7 @@ files:
|
|
38
51
|
- spec/base_engine_spec.rb
|
39
52
|
- spec/runner_spec.rb
|
40
53
|
- spec/spec_helper.rb
|
41
|
-
homepage:
|
54
|
+
homepage: http://github.com/kbackowski/all_green
|
42
55
|
licenses: []
|
43
56
|
post_install_message:
|
44
57
|
rdoc_options: []
|
@@ -50,21 +63,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
50
63
|
- - ! '>='
|
51
64
|
- !ruby/object:Gem::Version
|
52
65
|
version: '0'
|
53
|
-
segments:
|
54
|
-
- 0
|
55
|
-
hash: -232015811990800181
|
56
66
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
67
|
none: false
|
58
68
|
requirements:
|
59
69
|
- - ! '>='
|
60
70
|
- !ruby/object:Gem::Version
|
61
71
|
version: '0'
|
62
|
-
segments:
|
63
|
-
- 0
|
64
|
-
hash: -232015811990800181
|
65
72
|
requirements: []
|
66
73
|
rubyforge_project:
|
67
|
-
rubygems_version: 1.8.
|
74
|
+
rubygems_version: 1.8.15
|
68
75
|
signing_key:
|
69
76
|
specification_version: 3
|
70
77
|
summary: Run all your test suites (rspec, cucumber, rails unit tests and more...)
|