guard-test 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,16 +1,26 @@
1
+ ## 0.4.0 - September 29, 2011 - ([@rymai][])
2
+
3
+ ### Regression:
4
+
5
+ - Removed support of [turn](https://github.com/guard/guard-spork) gem since "Turn is no longer compatible with TestUnit 2.0+. TestUnit and MiniTest are deverging and after some consideration it was decided that Turn's goal is to support Ruby's native test framework, whatever it may be." quoted from Turn's [release.txt](https://github.com/TwP/turn/blob/master/Release.txt).
6
+
7
+ ### New feature:
8
+
9
+ - New `:drb` option enabling the use of [`spork-testunit`](https://github.com/timcharper/spork-testunit) gem (be sure to use [guard-spork](https://github.com/guard/guard-spork) as well).
10
+
1
11
  ## 0.3.1 - September 11, 2011
2
12
 
3
- ### New features:
13
+ ### New feature:
4
14
 
5
15
  - Pull request [#13](https://github.com/guard/guard-test/pull/13): New `test_paths` option to look for test files under other paths than `test`. ([@Ask11][])
6
16
 
7
- ### Improvements:
17
+ ### Improvement:
8
18
 
9
19
  - Pull request [#15](https://github.com/guard/guard-test/pull/15): Simplify some checks. ([@dasch][])
10
20
 
11
21
  ## 0.3.0 - June 14, 2011
12
22
 
13
- ### Improvements:
23
+ ### Improvement:
14
24
 
15
25
  - Internal cleaning. ([@rymai][])
16
26
 
@@ -22,7 +32,7 @@
22
32
  - Fixed the `fastfail` runner that was displaying a green dot even for a failing test. ([@rymai][])
23
33
  - Removed the `:notification` option. Use the new Guard method instead. ([@rymai][])
24
34
 
25
- ### New features:
35
+ ### New feature:
26
36
 
27
37
  - Turn seems to work fine now... ([@rymai][])
28
38
 
@@ -32,13 +42,13 @@
32
42
 
33
43
  ## 0.3.0.rc4 - June 3, 2011 - ([@rymai][])
34
44
 
35
- ### Bugs fixes:
45
+ ### Bugs fix:
36
46
 
37
47
  - Add a require that was making the guard be fired by Guard! :'(
38
48
 
39
49
  ## 0.3.0.rc3 - June 3, 2011 - ([@rymai][])
40
50
 
41
- ### Bugs fixes:
51
+ ### Bugs fix:
42
52
 
43
53
  - Actually make the tests run.
44
54
 
@@ -56,26 +66,24 @@
56
66
  - New `:all_after_pass` option (true by default) to run all tests after changed tests pass.
57
67
  - New `:keep_failed` option (true by default) to keep failed tests until them pass.
58
68
 
59
- ### Improvement:
69
+ ### Improvements:
60
70
 
61
71
  - Added compatibility with 1.8.6, 1.8.7, 1.9.2, REE, Rubinius and JRuby.
62
72
  - Internal changes inspired by [guard-minitest](https://github.com/guard/guard-minitest).
63
73
 
64
74
  ## 0.1.6 - January 24, 2011
65
75
 
66
- ### Bugs fixes:
76
+ ### Bugs fix:
67
77
 
68
78
  - Issue [#2](https://github.com/guard/guard-test/issues/2): Fixed a bug introduced in 0.1.5 where test/ was not added to the $LOAD_PATH. (reported by [@jgrau][], fixed by [@rymai][])
69
79
 
70
- ## 0.1.5 - January 21, 2011
71
-
72
- ### Changes:
80
+ ## 0.1.5 - January 21, 2011 - ([@rymai][])
73
81
 
74
82
  - Updated gem dependencies
75
83
 
76
84
  ## 0.1.4 - December 15, 2010
77
85
 
78
- ### Bugs fixes:
86
+ ### Bugs fix:
79
87
 
80
88
  - Pull request [#1](https://github.com/guard/guard-test/pull/1): Include errors count to determine the "flag" to display in notification. ([@gregorymostizky][])
81
89
 
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Guard::Test [![Build Status](http://travis-ci.org/guard/guard-test.png)](http://travis-ci.org/guard/guard-test)
1
+ # Guard::Test [![Build Status](https://secure.travis-ci.org/guard/guard-test.png)](http://travis-ci.org/guard/guard-test)
2
2
 
3
3
  Test::Unit guard allows to automatically & intelligently launch tests when files are modified or created.
4
4
 
@@ -6,7 +6,7 @@ If you have any questions about Guard or Guard::Test, please join us on our [Goo
6
6
 
7
7
  ## Features
8
8
 
9
- - Compatible with Test::Unit >= 2.2.
9
+ - Compatible with test-unit 2.
10
10
  - Tested on Ruby 1.8.7, 1.9.2, REE, Rubinius and JRuby.
11
11
 
12
12
  ## Install
@@ -39,67 +39,45 @@ $ guard init test
39
39
 
40
40
  ## Usage
41
41
 
42
- Please read [Guard usage doc](https://github.com/guard/guard#readme).
42
+ Please read the [Guard usage doc](https://github.com/guard/guard#readme).
43
43
 
44
44
  ## Guardfile
45
45
 
46
46
  Guard::Test can be adapted to any kind of projects.
47
47
 
48
- ### Standard Ruby project
48
+ See the [template Guardfile](https://github.com/guard/guard-test/blob/master/lib/guard/test/templates/Guardfile) for some examples.
49
49
 
50
- ```ruby
51
- guard 'test' do
52
- watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
53
- watch(%r{^test/.+_test\.rb$})
54
- watch('test/test_helper.rb') { "test" }
55
- end
56
- ```
50
+ Please read the [Guard documentation](https://github.com/guard/guard#readme) for more info about the Guardfile DSL.
57
51
 
58
- ### Ruby On Rails project
52
+ ## Options
59
53
 
60
- ```ruby
61
- guard 'test' do
62
- watch(%r{^app/models/(.+)\.rb$}) { |m| "test/unit/#{m[1]}_test.rb" }
63
- watch(%r{^app/controllers/(.+)\.rb$}) { |m| "test/functional/#{m[1]}_test.rb" }
64
- watch(%r{^app/views/.+\.rb$}) { "test/integration" }
65
- watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
66
- watch(%r{^test/.+_test.rb$})
67
- watch('app/controllers/application_controller.rb') { ["test/functional", "test/integration"] }
68
- watch('test/test_helper.rb') { "test" }
69
- end
70
- ```
54
+ **Deprecation notice:** The `:runner` option is deprecated. If you had set it to "fastfail", it is now the default in test-unit 2, but if you want the opposite, you can pass the `:cli => '--no-show-detail-immediately'` option instead.
71
55
 
72
- Please read the [Guard documentation](https://github.com/guard/guard#readme) for more info about the Guardfile DSL.
56
+ ### Available options
73
57
 
74
- ## Options
58
+ * `bundler` (`Boolean`) - Whether or not to use `bundle exec` to run tests. Default to `true` if a you have a Gemfile in the current directory.
59
+ * `rvm` (`Array<String>`) - Directly run your specs against multiple Rubies. Default to `nil`.
60
+ * `drb` (`Boolean`) - Run your tests with [`spork-testunit`](https://github.com/timcharper/spork-testunit). Default to `false`.
61
+ * `cli` (`String`) - Pass arbitrary CLI arguments to the command that runs the tests. Default to `nil`.
62
+ * `all_on_start` (`Boolean`) - Run all tests on Guard startup. Default to `true`.
63
+ * `all_after_pass` (`Boolean`) - Run all tests after the current run tests pass. Default to `true`.
64
+ * `keep_failed` (`Boolean`) - Re-run failing tests until they pass. Default to `true`.
65
+ * `test_paths` (`Array<String>`) - Array of paths that where are located the test files. Default to `['test']`.
75
66
 
76
- Guard::Test allows you to choose between two different runners (Guard::Test's runners are inherited from Test::Unit's console runner):
67
+ #### `drb` option
77
68
 
78
- - `default`: Display tests results as they happen, with different chars (green `.` for pass, red `F` for fail, purple `E` for error)
79
- and print failures/errors messages & backtraces when all the tests are finished. Obviously, this is the guard-test default.
80
- - `fastfail`: Display tests results as they happen and print failures/errors messages & backtraces immediately.
69
+ When true, notifications are disabled. This might be fixed in future releases.
70
+
71
+ #### `test_paths` option
81
72
 
82
73
  By default, guard-test will only look for test files within `test/` in your project root. You can add any paths using the `:test_paths` option:
83
74
 
84
75
  ```ruby
85
- guard 'test', :test_paths => ['test', 'vendor/plugins/recaptcha/test', 'any/path/test'] do
76
+ guard :test, :test_paths => ['test', 'vendor/plugins/recaptcha/test', 'any/path/test'] do
86
77
  # ...
87
78
  end
88
79
  ```
89
80
 
90
- Available options:
91
-
92
- ```ruby
93
- :rvm => ['1.8.7', '1.9.2'] # directly run your specs on multiple Rubies, default: nil
94
- :bundler => false # don't use "bundle exec" to run the test command, default: true if a you have a Gemfile
95
- :runner => 'fastfail' # default: 'default'
96
- :cli => "-v" # pass arbitrary CLI arguments to the Ruby command that runs the tests, default: nil
97
- :all_on_start => false # don't run all the tests at startup, default: true
98
- :all_after_pass => false # don't run all tests after changed tests pass, default: true
99
- :keep_failed => false # keep failed tests until them pass, default: true
100
- :test_paths => ['spec'] # specify an array of paths that contain test files
101
- ```
102
-
103
81
  ## Development
104
82
 
105
83
  - Source hosted on GitHub: https://github.com/guard/guard-test
@@ -109,8 +87,8 @@ Pull requests are very welcome! Please try to follow these simple "rules", thoug
109
87
 
110
88
  - Please create a topic branch for every separate change you make;
111
89
  - Make sure your patches are well tested;
112
- - Update the README (if applicable);
113
- - Update the CHANGELOG (maybe not for a typo but don't hesitate!);
90
+ - Update the [README](https://github.com/guard/guard-test/blob/master/README.md) (if applicable);
91
+ - Update the [CHANGELOG](https://github.com/guard/guard-test/blob/master/CHANGELOG.md) and add yourself to the list of contributors (see at the bottom of the CHANGELOG for examples);
114
92
  - Please do not change the version number.
115
93
 
116
94
  For questions please join us on our [Google group](http://groups.google.com/group/guard-dev) or on `#guard` (irc.freenode.net).
@@ -0,0 +1,48 @@
1
+ # encoding: utf-8
2
+ $:.push File.expand_path('../../../', File.dirname(__FILE__))
3
+
4
+ require 'test/unit/ui/console/testrunner'
5
+ require 'guard/test/notifier'
6
+
7
+ # Thanks to Adam Sanderson for the really good starting point:
8
+ # http://endofline.wordpress.com/2008/02/11/a-custom-testrunner-to-scratch-an-itch/
9
+ #
10
+ # This class inherits from Test::Unit' standard console TestRunner
11
+ # I'm just overriding some callbacks methods to strip some outputs and display a notification on end
12
+ module Guard
13
+ class Test
14
+ class GuardTestRunner < ::Test::Unit::UI::Console::TestRunner
15
+
16
+ def initialize(suite, options = {})
17
+ super
18
+ @color_scheme["pass"] = ::Test::Unit::Color.new("green", :foreground => true, :bold => true)
19
+ @color_scheme["failure"] = ::Test::Unit::Color.new("red", :foreground => true, :bold => true)
20
+ end
21
+
22
+ protected
23
+
24
+ # Test::Unit::UI::Console::TestRunner overrided methods
25
+ def setup_mediator
26
+ @mediator = ::Test::Unit::UI::TestRunnerMediator.new(@suite)
27
+ end
28
+
29
+ def started(result)
30
+ @result = result
31
+ nl
32
+ end
33
+
34
+ def finished(elapsed_time)
35
+ super
36
+ Guard::TestNotifier.notify(@result, elapsed_time)
37
+ nl
38
+ end
39
+
40
+ def fault_color_name(fault)
41
+ fault.class.name.split(/::/).last.downcase.to_sym
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+
48
+ Test::Unit::AutoRunner.register_runner(:guard) { |r| Guard::Test::GuardTestRunner }