infinity_test 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/.gitignore +10 -0
  2. data/.infinity_test +8 -0
  3. data/.rspec +1 -0
  4. data/.rvmrc +1 -0
  5. data/Gemfile +11 -0
  6. data/Rakefile +49 -0
  7. data/Readme.markdown +92 -0
  8. data/Tasks +5 -0
  9. data/VERSION.yml +5 -0
  10. data/bin/infinity_test +7 -0
  11. data/buzz_images/buzz_lightyear.jpg +0 -0
  12. data/buzz_images/buzz_lightyear_continencia.gif +0 -0
  13. data/buzz_images/to_infinity_and_beyond.png +0 -0
  14. data/features/infinity_test.feature +36 -0
  15. data/features/support/env.rb +1 -0
  16. data/images/faces/failure.png +0 -0
  17. data/images/faces/pending.png +0 -0
  18. data/images/faces/sucess.png +0 -0
  19. data/images/hands/failure.png +0 -0
  20. data/images/hands/pending.png +0 -0
  21. data/images/hands/sucess.png +0 -0
  22. data/images/mario_bros/failure.jpg +0 -0
  23. data/images/mario_bros/pending.jpg +0 -0
  24. data/images/mario_bros/sucess.jpg +0 -0
  25. data/images/rails/failure.png +0 -0
  26. data/images/rails/pending.png +0 -0
  27. data/images/rails/sucess.png +0 -0
  28. data/images/rubies/failure.png +0 -0
  29. data/images/rubies/pending.png +0 -0
  30. data/images/rubies/sucess.png +0 -0
  31. data/images/simpson/failure.gif +0 -0
  32. data/images/simpson/pending.jpg +0 -0
  33. data/images/simpson/sucess.jpg +0 -0
  34. data/images/street_fighter/failure.gif +0 -0
  35. data/images/street_fighter/pending.gif +0 -0
  36. data/images/street_fighter/sucess.jpg +0 -0
  37. data/images/toy_story/failure.gif +0 -0
  38. data/images/toy_story/pending.png +0 -0
  39. data/images/toy_story/sucess.png +0 -0
  40. data/infinity_test.gemspec +168 -0
  41. data/lib/infinity_test.rb +31 -0
  42. data/lib/infinity_test/application.rb +168 -0
  43. data/lib/infinity_test/binary_path.rb +21 -0
  44. data/lib/infinity_test/command.rb +57 -0
  45. data/lib/infinity_test/configuration.rb +157 -0
  46. data/lib/infinity_test/continuous_testing.rb +62 -0
  47. data/lib/infinity_test/dependencies.rb +45 -0
  48. data/lib/infinity_test/notifications/growl.rb +15 -0
  49. data/lib/infinity_test/notifications/lib_notify.rb +11 -0
  50. data/lib/infinity_test/options.rb +52 -0
  51. data/lib/infinity_test/rspec.rb +87 -0
  52. data/lib/infinity_test/runner.rb +30 -0
  53. data/lib/infinity_test/test_unit.rb +74 -0
  54. data/lib/infinity_test/test_unit_loader.rb +5 -0
  55. data/spec/factories/buzz/lib/buzz.rb +0 -0
  56. data/spec/factories/buzz/spec/buzz_spec.rb +0 -0
  57. data/spec/factories/company/lib/company.rb +0 -0
  58. data/spec/factories/company/test/company_test.rb +0 -0
  59. data/spec/factories/images/failure.png +0 -0
  60. data/spec/factories/images/pending.png +0 -0
  61. data/spec/factories/images/sucess.png +0 -0
  62. data/spec/factories/infinity_test +5 -0
  63. data/spec/factories/infinity_test_example +7 -0
  64. data/spec/factories/slinky/spec/slinky/slinky_spec.rb +0 -0
  65. data/spec/factories/travel/lib/travel.rb +0 -0
  66. data/spec/factories/travel/test/partner_test.rb +0 -0
  67. data/spec/factories/travel/test/travel_test.rb +0 -0
  68. data/spec/factories/wood/lib/wood.rb +0 -0
  69. data/spec/factories/wood/spec/wood_spec.rb +0 -0
  70. data/spec/infinity_test/application_spec.rb +149 -0
  71. data/spec/infinity_test/command_spec.rb +47 -0
  72. data/spec/infinity_test/configuration_spec.rb +196 -0
  73. data/spec/infinity_test/continuous_testing_spec.rb +7 -0
  74. data/spec/infinity_test/notifications/growl_spec.rb +9 -0
  75. data/spec/infinity_test/notifications/lib_notify_spec.rb +9 -0
  76. data/spec/infinity_test/options_spec.rb +69 -0
  77. data/spec/infinity_test/rspec_spec.rb +189 -0
  78. data/spec/infinity_test/runner_spec.rb +34 -0
  79. data/spec/infinity_test/test_unit_spec.rb +182 -0
  80. data/spec/infinity_test_spec.rb +29 -0
  81. data/spec/spec.opts +1 -0
  82. data/spec/spec_helper.rb +67 -0
  83. metadata +226 -0
@@ -0,0 +1,10 @@
1
+ *.sw?
2
+ .DS_STORE
3
+ .DS_Store
4
+ log*
5
+ pkg*
6
+ temporary
7
+ tmp/*
8
+ rerun.txt
9
+ .bundle/*
10
+ *.rbc
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ infinity_test do
4
+
5
+ use :rubies => ['1.8.7', '1.9.2', 'jruby@infinity_test', 'ree@infinity_test'], :test_framework => :rspec, :cucumber => true
6
+
7
+ end
8
+
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.2
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ source :rubygems
4
+
5
+ gem 'watchr'
6
+
7
+ group :test do
8
+ gem 'rspec', ">= 2.0.0"
9
+ gem 'cucumber'
10
+ gem 'aruba'
11
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require 'rake'
4
+
5
+ $:.unshift(File.dirname(__FILE__) + '/lib')
6
+
7
+ POST_MESSAGE = <<-POST_INSTALL_MESSAGE
8
+
9
+ #{ '-' * 80}
10
+ T O I N F I N I T Y A N D B E Y O N D !!!
11
+
12
+ The Infinity uses the awesome RVM to run.
13
+ If you don't have the RVM installed, stop what you doing =p.
14
+ RVM Installation Instructions:
15
+ http://rvm.beginrescueend.com/rvm/install/
16
+ And don't forget to see how you can customize Infinity Test here:
17
+ http://github.com/tomas-stefano/infinity_test/wiki/Customize-Infinity-Test
18
+
19
+ Happy Coding! :)
20
+
21
+ #{ '-' * 80}
22
+
23
+ POST_INSTALL_MESSAGE
24
+
25
+ begin
26
+ require 'jeweler'
27
+ Jeweler::Tasks.new do |gemspec|
28
+ gemspec.name = "infinity_test"
29
+ gemspec.summary = "Continuous testing and a flexible alternative to Autotest using watchr and RVM"
30
+ gemspec.description = "Infinity Test is a continuous testing library and a flexible alternative to Autotest, using Watchr library with Rspec OR Test::Unit with RVM funcionality, giving the possibility to test with all Rubies that you have in your RVM configuration."
31
+ gemspec.email = "tomasdestefi@gmail.com"
32
+ gemspec.homepage = "http://github.com/tomas-stefano/infinity_test"
33
+ gemspec.authors = ["Tomas D'Stefano"]
34
+
35
+ gemspec.add_dependency('watchr', '>= 0.7')
36
+
37
+ gemspec.add_development_dependency('rspec', '>= 1.3.0')
38
+ gemspec.add_development_dependency('cucumber', '>= 0.6.2')
39
+ gemspec.add_development_dependency('aruba', '>= 0.1.7')
40
+
41
+ gemspec.post_install_message = POST_MESSAGE
42
+ end
43
+ Jeweler::GemcutterTasks.new
44
+ rescue LoadError
45
+ puts("-" * 80)
46
+ puts "Jeweler not available. Install it with:
47
+ [sudo] gem install jeweler"
48
+ puts("-" * 80)
49
+ end
@@ -0,0 +1,92 @@
1
+ # Infinity Test
2
+
3
+
4
+ Infinity Test is a continuous testing library and a flexible alternative to Autotest,
5
+ using Watchr library with Rspec OR Test::Unit with RVM funcionality,
6
+ giving the possibility to test with all <b>Rubies</b> that you have in your RVM configuration.
7
+
8
+ ## To Infinity and Beyond!
9
+
10
+ <div style="padding:2px; border:1px solid silver; float:right; margin:0 0 1em 2em; background:white">
11
+ <img src="http://github.com/tomas-stefano/infinity_test/raw/master/buzz_images/to_infinity_and_beyond.png" alt="Infinity Test" />
12
+ <p style="text-align:center"> Photo taken by <a href="http://www.mixed-metaphor.org/fan/buzz/" title="buzz-light-year"> this site </a></p>
13
+ </div>
14
+
15
+ ## Install
16
+
17
+ * The Infinity Test gem don't have a version, but <b>is looking for contributors</b>. =]
18
+
19
+ This gem will be released in September 17.
20
+
21
+ ## Running Tests only in one ruby
22
+
23
+ With Rspec:
24
+
25
+ infinity_test --rspec
26
+
27
+ With Test::Unit:
28
+
29
+ infinity_test --test-unit
30
+
31
+ ## Running Tests with many Rubies
32
+
33
+ With Rspec:
34
+
35
+ infinity_test --rspec --rubies=1.8.7,jruby,1.9.2,ree
36
+
37
+ Or with Test::Unit:
38
+
39
+ infinity_test --test-unit --rubies=1.8.7,jruby,ree,1.9.2
40
+
41
+ <b>And you are ready to Test with all ruby versions your Rspec or Test::Unit Suite with Autotest-like Behavior.</b>
42
+
43
+ ## Configuration file
44
+
45
+ ### Simple Domain Specific Language for Infinity Test file
46
+
47
+ If you don't set all the time the rubies that you want, test framework that you want, notifications that you want,
48
+ you can write some code that infinity_test understand.
49
+
50
+ So create the global file or project file called:
51
+
52
+ ~/.infinity_test or .infinity_test
53
+
54
+ infinity_test do
55
+
56
+ notifications :growl do
57
+ show_images :mode => :mario_bros
58
+ end
59
+
60
+ use :rubies => %w(1.9.1 jruby 1.9.2 ree), :test_framework => :rspec
61
+
62
+ before_run do
63
+ clear :terminal
64
+ end
65
+
66
+ after_run do
67
+ puts 'Finished!'
68
+ end
69
+
70
+ end
71
+
72
+ ### Customize the .infinity_test file
73
+
74
+ #### If you want to customize and understand the .infinity_test file, <a href='http://github.com/tomas-stefano/infinity_test/wiki/Customize-Infinity-Test'>Read this Page</a>
75
+
76
+ ## You Like it the Idea?
77
+
78
+ <b>So make a fork and start contributing =].</b>
79
+
80
+ ## You have a Feature request or Fix?
81
+
82
+ <b>Contact me in Github and let's talk! =] </b>
83
+
84
+ ## TODO
85
+
86
+ * Edit the wiki
87
+ * Working in focus files and run only the modified file (Strategies for Test::Unit, Rspec and Cucumber)
88
+
89
+ # Acknowledgments
90
+
91
+ * Thanks to Mynyml and Watchr library.
92
+ * Thanks to Waynee Seguin and the RVM.
data/Tasks ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ class InfinityTest < Morpheus::Base
3
+ rspec :spec, :rvm_versions => %w(1.8.7-p249, 1.9.1, 1.9.2 jruby)
4
+ cucumber :features, :rvm_versions => %w(1.9.2), :format => :pretty
5
+ end
@@ -0,0 +1,5 @@
1
+ ---
2
+ :major: 0
3
+ :minor: 1
4
+ :patch: 0
5
+ :build:
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ infinity_test_directory = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(infinity_test_directory) unless $LOAD_PATH.include?(infinity_test_directory)
5
+ require 'infinity_test'
6
+
7
+ InfinityTest.start!
@@ -0,0 +1,36 @@
1
+ Feature: Infinity test
2
+ In order to continuous testing
3
+ As a user
4
+ I want to test my app/gem with rapid feedback
5
+
6
+ Background:
7
+ Given a file named "continuous/lib/continuous.rb" with:
8
+ """
9
+ class Continuous
10
+ end
11
+ """
12
+ And a file named "continuous/spec/continuous_spec.rb" with:
13
+ """
14
+ require 'continuous'
15
+ describe Continuous do
16
+ it "should be true" do
17
+ Continuous.new.should be_true
18
+ end
19
+ end
20
+ """
21
+ And a file named "continuous/features/continuous.feature" with:
22
+ """
23
+ """
24
+
25
+
26
+ Scenario: Show help
27
+ When I run "ruby ../../bin/infinity_test --help"
28
+ Then I should see:
29
+ """
30
+ Usage: infinity_test [options]
31
+ Starts a continuous test server.
32
+ --rspec Rspec Framework
33
+ --rvm-versions=rubies Specify the Ruby Versions for Testing with several Rubies
34
+ --help You're looking at it.
35
+ """
36
+
@@ -0,0 +1 @@
1
+ require 'aruba'
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,168 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{infinity_test}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Tomas D'Stefano"]
12
+ s.date = %q{2010-09-18}
13
+ s.description = %q{Infinity Test is a continuous testing library and a flexible alternative to Autotest, using Watchr library with Rspec OR Test::Unit with RVM funcionality, giving the possibility to test with all Rubies that you have in your RVM configuration.}
14
+ s.email = %q{tomasdestefi@gmail.com}
15
+ s.executables = ["infinity_test", "infinity_test.compiled.rbc"]
16
+ s.files = [
17
+ ".gitignore",
18
+ ".infinity_test",
19
+ ".rspec",
20
+ ".rvmrc",
21
+ "Gemfile",
22
+ "Rakefile",
23
+ "Readme.markdown",
24
+ "Tasks",
25
+ "VERSION.yml",
26
+ "bin/infinity_test",
27
+ "buzz_images/buzz_lightyear.jpg",
28
+ "buzz_images/buzz_lightyear_continencia.gif",
29
+ "buzz_images/to_infinity_and_beyond.png",
30
+ "features/infinity_test.feature",
31
+ "features/support/env.rb",
32
+ "images/faces/failure.png",
33
+ "images/faces/pending.png",
34
+ "images/faces/sucess.png",
35
+ "images/hands/failure.png",
36
+ "images/hands/pending.png",
37
+ "images/hands/sucess.png",
38
+ "images/mario_bros/failure.jpg",
39
+ "images/mario_bros/pending.jpg",
40
+ "images/mario_bros/sucess.jpg",
41
+ "images/rails/failure.png",
42
+ "images/rails/pending.png",
43
+ "images/rails/sucess.png",
44
+ "images/rubies/failure.png",
45
+ "images/rubies/pending.png",
46
+ "images/rubies/sucess.png",
47
+ "images/simpson/failure.gif",
48
+ "images/simpson/pending.jpg",
49
+ "images/simpson/sucess.jpg",
50
+ "images/street_fighter/failure.gif",
51
+ "images/street_fighter/pending.gif",
52
+ "images/street_fighter/sucess.jpg",
53
+ "images/toy_story/failure.gif",
54
+ "images/toy_story/pending.png",
55
+ "images/toy_story/sucess.png",
56
+ "infinity_test.gemspec",
57
+ "lib/infinity_test.rb",
58
+ "lib/infinity_test/application.rb",
59
+ "lib/infinity_test/binary_path.rb",
60
+ "lib/infinity_test/command.rb",
61
+ "lib/infinity_test/configuration.rb",
62
+ "lib/infinity_test/continuous_testing.rb",
63
+ "lib/infinity_test/dependencies.rb",
64
+ "lib/infinity_test/notifications/growl.rb",
65
+ "lib/infinity_test/notifications/lib_notify.rb",
66
+ "lib/infinity_test/options.rb",
67
+ "lib/infinity_test/rspec.rb",
68
+ "lib/infinity_test/runner.rb",
69
+ "lib/infinity_test/test_unit.rb",
70
+ "lib/infinity_test/test_unit_loader.rb",
71
+ "spec/factories/buzz/lib/buzz.rb",
72
+ "spec/factories/buzz/spec/buzz_spec.rb",
73
+ "spec/factories/company/lib/company.rb",
74
+ "spec/factories/company/test/company_test.rb",
75
+ "spec/factories/images/failure.png",
76
+ "spec/factories/images/pending.png",
77
+ "spec/factories/images/sucess.png",
78
+ "spec/factories/infinity_test",
79
+ "spec/factories/infinity_test_example",
80
+ "spec/factories/slinky/spec/slinky/slinky_spec.rb",
81
+ "spec/factories/travel/lib/travel.rb",
82
+ "spec/factories/travel/test/partner_test.rb",
83
+ "spec/factories/travel/test/travel_test.rb",
84
+ "spec/factories/wood/lib/wood.rb",
85
+ "spec/factories/wood/spec/wood_spec.rb",
86
+ "spec/infinity_test/application_spec.rb",
87
+ "spec/infinity_test/command_spec.rb",
88
+ "spec/infinity_test/configuration_spec.rb",
89
+ "spec/infinity_test/continuous_testing_spec.rb",
90
+ "spec/infinity_test/notifications/growl_spec.rb",
91
+ "spec/infinity_test/notifications/lib_notify_spec.rb",
92
+ "spec/infinity_test/options_spec.rb",
93
+ "spec/infinity_test/rspec_spec.rb",
94
+ "spec/infinity_test/runner_spec.rb",
95
+ "spec/infinity_test/test_unit_spec.rb",
96
+ "spec/infinity_test_spec.rb",
97
+ "spec/spec.opts",
98
+ "spec/spec_helper.rb"
99
+ ]
100
+ s.homepage = %q{http://github.com/tomas-stefano/infinity_test}
101
+ s.post_install_message = %q{
102
+ --------------------------------------------------------------------------------
103
+ T O I N F I N I T Y A N D B E Y O N D !!!
104
+
105
+ The Infinity uses the awesome RVM to run.
106
+ If you don't have the RVM installed, stop what you doing =p.
107
+ RVM Installation Instructions:
108
+ http://rvm.beginrescueend.com/rvm/install/
109
+ And don't forget to see how you can customize Infinity Test here:
110
+ http://github.com/tomas-stefano/infinity_test/wiki/Customize-Infinity-Test
111
+
112
+ Happy Coding! :)
113
+
114
+ --------------------------------------------------------------------------------
115
+
116
+ }
117
+ s.rdoc_options = ["--charset=UTF-8"]
118
+ s.require_paths = ["lib"]
119
+ s.rubygems_version = %q{1.3.7}
120
+ s.summary = %q{Continuous testing and a flexible alternative to Autotest using watchr and RVM}
121
+ s.test_files = [
122
+ "spec/factories/buzz/lib/buzz.rb",
123
+ "spec/factories/buzz/spec/buzz_spec.rb",
124
+ "spec/factories/company/lib/company.rb",
125
+ "spec/factories/company/test/company_test.rb",
126
+ "spec/factories/slinky/spec/slinky/slinky_spec.rb",
127
+ "spec/factories/travel/lib/travel.rb",
128
+ "spec/factories/travel/test/partner_test.rb",
129
+ "spec/factories/travel/test/travel_test.rb",
130
+ "spec/factories/wood/lib/wood.rb",
131
+ "spec/factories/wood/spec/wood_spec.rb",
132
+ "spec/infinity_test/application_spec.rb",
133
+ "spec/infinity_test/command_spec.rb",
134
+ "spec/infinity_test/configuration_spec.rb",
135
+ "spec/infinity_test/continuous_testing_spec.rb",
136
+ "spec/infinity_test/notifications/growl_spec.rb",
137
+ "spec/infinity_test/notifications/lib_notify_spec.rb",
138
+ "spec/infinity_test/options_spec.rb",
139
+ "spec/infinity_test/rspec_spec.rb",
140
+ "spec/infinity_test/runner_spec.rb",
141
+ "spec/infinity_test/test_unit_spec.rb",
142
+ "spec/infinity_test_spec.rb",
143
+ "spec/spec_helper.rb"
144
+ ]
145
+
146
+ if s.respond_to? :specification_version then
147
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
148
+ s.specification_version = 3
149
+
150
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
151
+ s.add_runtime_dependency(%q<watchr>, [">= 0.7"])
152
+ s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
153
+ s.add_development_dependency(%q<cucumber>, [">= 0.6.2"])
154
+ s.add_development_dependency(%q<aruba>, [">= 0.1.7"])
155
+ else
156
+ s.add_dependency(%q<watchr>, [">= 0.7"])
157
+ s.add_dependency(%q<rspec>, [">= 1.3.0"])
158
+ s.add_dependency(%q<cucumber>, [">= 0.6.2"])
159
+ s.add_dependency(%q<aruba>, [">= 0.1.7"])
160
+ end
161
+ else
162
+ s.add_dependency(%q<watchr>, [">= 0.7"])
163
+ s.add_dependency(%q<rspec>, [">= 1.3.0"])
164
+ s.add_dependency(%q<cucumber>, [">= 0.6.2"])
165
+ s.add_dependency(%q<aruba>, [">= 0.1.7"])
166
+ end
167
+ end
168
+