rubytest 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.index +13 -20
- data/HISTORY.md +12 -0
- data/LICENSE.txt +22 -32
- data/README.md +38 -37
- data/lib/rubytest.rb +4 -6
- data/lib/rubytest.yml +13 -20
- data/lib/rubytest/autorun.rb +1 -1
- data/lib/rubytest/config.rb +21 -1
- data/lib/rubytest/{reporters → format}/abstract.rb +0 -0
- data/lib/rubytest/{reporters → format}/abstract_hash.rb +0 -0
- data/lib/rubytest/{reporters → format}/dotprogress.rb +0 -0
- data/lib/rubytest/{reporters → format}/test.rb +0 -0
- data/lib/rubytest/runner.rb +21 -12
- metadata +21 -82
- data/lib/rubytest/cli.rb +0 -165
- data/lib/rubytest/reporters/html.rb +0 -155
- data/lib/rubytest/reporters/outline.rb +0 -211
- data/lib/rubytest/reporters/progress.rb +0 -195
- data/lib/rubytest/reporters/summary.rb +0 -145
- data/lib/rubytest/reporters/tap.rb +0 -61
- data/lib/rubytest/reporters/tapj.rb +0 -57
- data/lib/rubytest/reporters/tapy.rb +0 -62
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 74e1fac06f06bdac2b565ff5e50d26ed55939031
|
4
|
+
data.tar.gz: 6f69652075d71103e5905d28ecdbdd1cea8ef1ec
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7931495754a8ae4c102274dafdbda4cbd0f5e2f9c63b3bb6bac5acbe35c9fb860e7915f576637cff072c17da1ecd7871222a0251d02a20aec8561e8e9ae83e14
|
7
|
+
data.tar.gz: 8af87ee70f52ca63287b5f338523384bd9d622978202214cb6f14a8959f0df424e71469f78518f0d3c12a1870e984f65383c6ddc4ac440bee3b0a4f153b4e86f
|
data/.index
CHANGED
@@ -2,28 +2,20 @@
|
|
2
2
|
revision: 2013
|
3
3
|
type: ruby
|
4
4
|
sources:
|
5
|
-
-
|
5
|
+
- Indexfile
|
6
|
+
- Gemfile
|
6
7
|
authors:
|
7
8
|
- name: trans
|
8
9
|
email: transfire@gmail.com
|
9
10
|
organizations: []
|
10
11
|
requirements:
|
11
|
-
- name: ansi
|
12
|
-
- groups:
|
13
|
-
- build
|
14
|
-
development: true
|
15
|
-
name: fire
|
16
|
-
- groups:
|
17
|
-
- build
|
18
|
-
development: true
|
19
|
-
name: detroit
|
20
12
|
- groups:
|
21
13
|
- test
|
22
|
-
|
14
|
+
version: '>= 0'
|
23
15
|
name: qed
|
24
16
|
- groups:
|
25
17
|
- test
|
26
|
-
|
18
|
+
version: '>= 0'
|
27
19
|
name: ae
|
28
20
|
conflicts: []
|
29
21
|
alternatives: []
|
@@ -50,12 +42,13 @@ customs: []
|
|
50
42
|
paths:
|
51
43
|
lib:
|
52
44
|
- lib
|
53
|
-
created: '2011-07-23'
|
54
|
-
summary: Ruby Universal Test Harness
|
55
|
-
title: Ruby Test
|
56
|
-
version: 0.7.0
|
57
45
|
name: rubytest
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
46
|
+
title: Rubytest
|
47
|
+
version: 0.8.0
|
48
|
+
summary: Ruby Universal Test Harness
|
49
|
+
description: Rubytest is a universal test harness for Ruby. It can handle any compliant
|
50
|
+
test framework, even running tests from multiple frameworks in a single pass. This
|
51
|
+
is the core component of the system, and is the only part strictly necessary to
|
52
|
+
run tests.
|
53
|
+
created: '2011-07-23'
|
54
|
+
date: '2014-07-18'
|
data/HISTORY.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# RELEASE HISTORY
|
2
2
|
|
3
|
+
## 0.8.0 / 2014-07-18
|
4
|
+
|
5
|
+
We have whittled Rubytest down to it core functionaltiy and spun the rest
|
6
|
+
off as separate plugin gems. The rubytest-suite gem is a metapackage
|
7
|
+
loading this gem and a set of common plugins for convenience.
|
8
|
+
|
9
|
+
Changes:
|
10
|
+
|
11
|
+
* Spin-off report formats as separate gems.
|
12
|
+
* Create rubytest-suite gem for convenience.
|
13
|
+
|
14
|
+
|
3
15
|
## 0.7.0 / 2013-02-18
|
4
16
|
|
5
17
|
Version 0.7 is a significant release. The library has been simplified
|
data/LICENSE.txt
CHANGED
@@ -1,33 +1,23 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
24
|
-
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
25
|
-
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
26
|
-
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
27
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
28
|
-
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
29
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
30
|
-
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
31
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
32
|
-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
|
+
(BSD-2-Clause License)
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
4
|
+
modification, are permitted provided that the following conditions are met:
|
5
|
+
|
6
|
+
1. Redistributions of source code must retain the above copyright notice,
|
7
|
+
this list of conditions and the following disclaimer.
|
8
|
+
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright
|
10
|
+
notice, this list of conditions and the following disclaimer in the
|
11
|
+
documentation and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
14
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
16
|
+
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
17
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
18
|
+
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
19
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
20
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
22
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
33
23
|
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Rubytest
|
2
2
|
|
3
3
|
[Homepage](http://rubyworks.github.com/rubytest) /
|
4
4
|
[User Guide](http://wiki.github.com/rubyworks/rubytest) /
|
@@ -11,25 +11,27 @@
|
|
11
11
|
|
12
12
|
## Description
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
Rubytest is a universal test harness for Ruby development. Think
|
15
|
+
of Rubytest as a *testing meta-framework*. It defines a straight-forward
|
16
|
+
specification that anyone can use to create their own testing DSLs
|
17
|
+
quickily and easily. This can be used for testing end applcations or it
|
18
|
+
can be used by test framework as a backend.
|
19
|
+
In addition, since all Rubytest controls the backend, multiple frameworks
|
20
|
+
can be used in a single test suite all of which can run through a single
|
21
|
+
uniform interface in a process.
|
20
22
|
|
21
23
|
|
22
24
|
## Specification
|
23
25
|
|
24
26
|
The universal access point for testing is the `$TEST_SUITE` global array. A test
|
25
27
|
framework need only add compliant test objects to `$TEST_SUITE`.
|
26
|
-
|
28
|
+
Rubytest will iterate through these objects. If a test object responds to
|
27
29
|
`#call`, it is run as a test procedure. If it responds to `#each` it is iterated
|
28
30
|
over as a test case with each entry handled in the same manner. All test
|
29
31
|
objects must respond to `#to_s` so their description can be used in test
|
30
32
|
reports.
|
31
33
|
|
32
|
-
|
34
|
+
Rubytest handles assertions with [BRASS](http://rubyworks.github.com/brass)
|
33
35
|
compliance. Any raised exception that responds to `#assertion?` in the
|
34
36
|
affirmative is taken to be a failed assertion rather than simply an error.
|
35
37
|
A test framework may raise a `NotImplementedError` to have a test recorded
|
@@ -40,18 +42,18 @@ to indicate the urgency of the pending test. Priorities of -1 or lower
|
|
40
42
|
will generally not be brought to the attention of testers unless explicitly
|
41
43
|
configured to do so.
|
42
44
|
|
43
|
-
That is the crux of
|
45
|
+
That is the crux of Rubytest specification. Rubytest supports some
|
44
46
|
additional features that can makes its usage even more convenient.
|
45
47
|
See the [Wiki](http://github.com/rubyworks/test/wiki) for further details.
|
46
48
|
|
47
49
|
|
48
50
|
## Installation
|
49
51
|
|
50
|
-
|
52
|
+
Rubytest is available as a Gem package.
|
51
53
|
|
52
54
|
$ gem install rubytest
|
53
55
|
|
54
|
-
|
56
|
+
Rubytest is compliant with Setup.rb layout standard, so it can
|
55
57
|
also be installed in an FHS compliant fashion if necessary.
|
56
58
|
|
57
59
|
|
@@ -59,30 +61,11 @@ also be installed in an FHS compliant fashion if necessary.
|
|
59
61
|
|
60
62
|
There are a few ways to run tests.
|
61
63
|
|
62
|
-
### Via Runner Scripts
|
63
|
-
|
64
|
-
Out of the box Ruby Test doesn't provide any special means for doing so,
|
65
|
-
you simply write you own runner script using the Ruby Test API.
|
66
|
-
Here is the basic example:
|
67
|
-
|
68
|
-
require 'rubytest'
|
69
|
-
|
70
|
-
Test.run! do |r|
|
71
|
-
r.loadpath 'lib'
|
72
|
-
r.test_files 'test/test_*.rb'
|
73
|
-
end
|
74
|
-
|
75
|
-
Put that in a `test/runner.rb` script and run it with `ruby` or
|
76
|
-
add `#!/usr/bin/env ruby` at the top and put it in `bin/test`
|
77
|
-
setting `chmod u+x bin/test`. Either way, you now have your test
|
78
|
-
runner.
|
79
|
-
|
80
64
|
### Via Command-line Tool
|
81
65
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
over it here.
|
66
|
+
The easiest way to run tests is via the command line tool. You can read more about
|
67
|
+
it on its [manpage](http://rubyworks.github.com/rubytest/man/rubytest.1.html),
|
68
|
+
but we will quickly go over it here.
|
86
69
|
|
87
70
|
The basic usage example is:
|
88
71
|
|
@@ -116,10 +99,28 @@ A basic example in its case, add to ones Rakefile:
|
|
116
99
|
|
117
100
|
See the Wiki for more detailed information on the different ways to run tests.
|
118
101
|
|
102
|
+
### Via Runner Scripts
|
103
|
+
|
104
|
+
Out of the box Rubytest doesn't provide any special means for doing so,
|
105
|
+
you simply write you own runner script using the Rubytest API.
|
106
|
+
Here is the basic example:
|
107
|
+
|
108
|
+
require 'rubytest'
|
109
|
+
|
110
|
+
Test.run! do |r|
|
111
|
+
r.loadpath 'lib'
|
112
|
+
r.test_files 'test/test_*.rb'
|
113
|
+
end
|
114
|
+
|
115
|
+
Put that in a `test/runner.rb` script and run it with `ruby` or
|
116
|
+
add `#!/usr/bin/env ruby` at the top and put it in `bin/test`
|
117
|
+
setting `chmod u+x bin/test`. Either way, you now have your test
|
118
|
+
runner.
|
119
|
+
|
119
120
|
|
120
121
|
## Requirements
|
121
122
|
|
122
|
-
|
123
|
+
Rubytest uses the [ANSI](http://rubyworks.github.com/ansi) gem for color output.
|
123
124
|
|
124
125
|
Because of the "foundational" nature of this library we will look at removing
|
125
126
|
this dependency for future versions, but for early development the
|
@@ -128,9 +129,9 @@ requirements does the job and does it well.
|
|
128
129
|
|
129
130
|
## Development
|
130
131
|
|
131
|
-
|
132
|
+
Rubytest is still a bit of a "nuby" gem. Please feel OBLIGATED to help improve it ;-)
|
132
133
|
|
133
|
-
|
134
|
+
Rubytest is a [Rubyworks](http://rubyworks.github.com) project. If you can't
|
134
135
|
contribute code, you can still help out by contributing to our development fund.
|
135
136
|
|
136
137
|
|
data/lib/rubytest.rb
CHANGED
@@ -30,9 +30,8 @@ if RUBY_VERSION < '1.9'
|
|
30
30
|
require 'rubytest/recorder'
|
31
31
|
require 'rubytest/advice'
|
32
32
|
require 'rubytest/runner'
|
33
|
-
require 'rubytest/
|
34
|
-
require 'rubytest/
|
35
|
-
require 'rubytest/reporters/abstract_hash'
|
33
|
+
require 'rubytest/format/abstract'
|
34
|
+
require 'rubytest/format/abstract_hash'
|
36
35
|
else
|
37
36
|
require_relative 'rubytest/core_ext'
|
38
37
|
require_relative 'rubytest/code_snippet'
|
@@ -40,8 +39,7 @@ else
|
|
40
39
|
require_relative 'rubytest/recorder'
|
41
40
|
require_relative 'rubytest/advice'
|
42
41
|
require_relative 'rubytest/runner'
|
43
|
-
require_relative 'rubytest/
|
44
|
-
require_relative 'rubytest/
|
45
|
-
require_relative 'rubytest/reporters/abstract_hash'
|
42
|
+
require_relative 'rubytest/format/abstract'
|
43
|
+
require_relative 'rubytest/format/abstract_hash'
|
46
44
|
end
|
47
45
|
|
data/lib/rubytest.yml
CHANGED
@@ -2,28 +2,20 @@
|
|
2
2
|
revision: 2013
|
3
3
|
type: ruby
|
4
4
|
sources:
|
5
|
-
-
|
5
|
+
- Indexfile
|
6
|
+
- Gemfile
|
6
7
|
authors:
|
7
8
|
- name: trans
|
8
9
|
email: transfire@gmail.com
|
9
10
|
organizations: []
|
10
11
|
requirements:
|
11
|
-
- name: ansi
|
12
|
-
- groups:
|
13
|
-
- build
|
14
|
-
development: true
|
15
|
-
name: fire
|
16
|
-
- groups:
|
17
|
-
- build
|
18
|
-
development: true
|
19
|
-
name: detroit
|
20
12
|
- groups:
|
21
13
|
- test
|
22
|
-
|
14
|
+
version: '>= 0'
|
23
15
|
name: qed
|
24
16
|
- groups:
|
25
17
|
- test
|
26
|
-
|
18
|
+
version: '>= 0'
|
27
19
|
name: ae
|
28
20
|
conflicts: []
|
29
21
|
alternatives: []
|
@@ -50,12 +42,13 @@ customs: []
|
|
50
42
|
paths:
|
51
43
|
lib:
|
52
44
|
- lib
|
53
|
-
created: '2011-07-23'
|
54
|
-
summary: Ruby Universal Test Harness
|
55
|
-
title: Ruby Test
|
56
|
-
version: 0.7.0
|
57
45
|
name: rubytest
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
46
|
+
title: Rubytest
|
47
|
+
version: 0.8.0
|
48
|
+
summary: Ruby Universal Test Harness
|
49
|
+
description: Rubytest is a universal test harness for Ruby. It can handle any compliant
|
50
|
+
test framework, even running tests from multiple frameworks in a single pass. This
|
51
|
+
is the core component of the system, and is the only part strictly necessary to
|
52
|
+
run tests.
|
53
|
+
created: '2011-07-23'
|
54
|
+
date: '2014-07-18'
|
data/lib/rubytest/autorun.rb
CHANGED
data/lib/rubytest/config.rb
CHANGED
@@ -116,7 +116,15 @@ module Test
|
|
116
116
|
|
117
117
|
#apply_environment
|
118
118
|
|
119
|
-
apply(settings
|
119
|
+
apply(settings)
|
120
|
+
|
121
|
+
# save for lazy execution
|
122
|
+
@block = block
|
123
|
+
end
|
124
|
+
|
125
|
+
# Apply lazy block.
|
126
|
+
def apply!
|
127
|
+
@block.call(self) if @block
|
120
128
|
end
|
121
129
|
|
122
130
|
# Evaluate configuration block.
|
@@ -129,6 +137,16 @@ module Test
|
|
129
137
|
block.call(self) if block
|
130
138
|
end
|
131
139
|
|
140
|
+
#
|
141
|
+
def name
|
142
|
+
@name
|
143
|
+
end
|
144
|
+
|
145
|
+
#
|
146
|
+
def name=(name)
|
147
|
+
@name = name.to_s if name
|
148
|
+
end
|
149
|
+
|
132
150
|
# Default test suite ($TEST_SUITE).
|
133
151
|
#
|
134
152
|
# @return [Array]
|
@@ -351,6 +369,8 @@ module Test
|
|
351
369
|
# Convert configuration to shell options, compatible with the
|
352
370
|
# rubytest command line.
|
353
371
|
#
|
372
|
+
# DEPRECATE: Shell command is considered bad approach.
|
373
|
+
#
|
354
374
|
# @return [Array<String>]
|
355
375
|
def to_shellwords
|
356
376
|
argv = []
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/rubytest/runner.rb
CHANGED
@@ -55,7 +55,9 @@ module Test
|
|
55
55
|
else Test.configuration(config)
|
56
56
|
end
|
57
57
|
|
58
|
-
|
58
|
+
@config.apply! # apply lazy config block
|
59
|
+
|
60
|
+
yield(@config) if block_given?
|
59
61
|
|
60
62
|
@advice = Advice.new
|
61
63
|
end
|
@@ -281,29 +283,36 @@ module Test
|
|
281
283
|
def reporter_load(format)
|
282
284
|
format = DEFAULT_REPORT_FORMAT unless format
|
283
285
|
format = format.to_s.downcase
|
284
|
-
name = reporter_list.find{ |r| /^#{format}/ =~ r }
|
285
|
-
|
286
|
-
raise "unsupported report format" unless format
|
286
|
+
name = reporter_list.find{ |r| /^#{format}/ =~ r } || format
|
287
287
|
|
288
|
-
|
289
|
-
require "rubytest/
|
290
|
-
|
291
|
-
|
288
|
+
begin
|
289
|
+
require "rubytest/format/#{name}"
|
290
|
+
rescue LoadError
|
291
|
+
raise "mistyped or uninstalled report format" unless format
|
292
292
|
end
|
293
293
|
|
294
294
|
reporter = Test::Reporters.const_get(name.capitalize)
|
295
295
|
reporter.new(self)
|
296
296
|
end
|
297
297
|
|
298
|
+
# List of known report formats.
|
299
|
+
#
|
300
|
+
# TODO: Could use finder gem to look these up, but that's yet another dependency.
|
301
|
+
#
|
302
|
+
KNOWN_FORMATS = %w{
|
303
|
+
dotprogress html progress outline summary tap tapy tapj test
|
304
|
+
}
|
305
|
+
|
298
306
|
# Returns a list of available report types.
|
299
307
|
#
|
300
308
|
# @return [Array<String>]
|
301
309
|
# The names of available reporters.
|
302
310
|
def reporter_list
|
303
|
-
|
304
|
-
list =
|
305
|
-
list = list.
|
306
|
-
list.
|
311
|
+
return KNOWN_FORMATS.sort
|
312
|
+
#list = Dir[File.dirname(__FILE__) + '/reporters/*.rb']
|
313
|
+
#list = list.map{ |r| File.basename(r).chomp('.rb') }
|
314
|
+
#list = list.reject{ |r| /^abstract/ =~ r }
|
315
|
+
#list.sort
|
307
316
|
end
|
308
317
|
|
309
318
|
# Files can be globs and directories which need to be
|