busser-bats 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/.simplecov +10 -0
- data/.travis.yml +28 -5
- data/CHANGELOG.md +13 -1
- data/Gemfile +8 -1
- data/Guardfile +26 -0
- data/README.md +3 -1
- data/Rakefile +15 -10
- data/busser-bats.gemspec +27 -22
- data/features/support/env.rb +10 -3
- data/lib/busser/bats/version.rb +1 -1
- data/lib/busser/runner_plugin/bats.rb +3 -3
- data/vendor/bats/.travis.yml +5 -0
- data/vendor/bats/LICENSE +1 -1
- data/vendor/bats/README.md +34 -13
- data/vendor/bats/VERSION.txt +1 -1
- data/vendor/bats/bin/bats +4 -2
- data/vendor/bats/install.sh +3 -1
- data/vendor/bats/libexec/bats +4 -2
- data/vendor/bats/libexec/bats-exec-suite +3 -3
- data/vendor/bats/libexec/bats-exec-test +151 -12
- data/vendor/bats/libexec/bats-format-tap-stream +13 -6
- data/vendor/bats/libexec/bats-preprocess +6 -5
- data/vendor/bats/man/Makefile +10 -0
- data/vendor/bats/man/README.md +5 -0
- data/vendor/bats/man/bats.1 +101 -0
- data/vendor/bats/man/bats.1.ronn +109 -0
- data/vendor/bats/man/bats.7 +178 -0
- data/vendor/bats/man/bats.7.ronn +156 -0
- data/vendor/bats/package.json +9 -0
- metadata +40 -16
- data/.tailor +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c613c540bc4ab8518fd66d06d7fce1080b5a252
|
4
|
+
data.tar.gz: 6ecfe900ccff1587a141dbad3828f2c1a3a85930
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d3ac5d61c193e198fdc9369107202b194d1ff36e7a2cb25cd50b36c6f9a60b1a0a9f72f74e29ecc7fed417b9ef53a83d2256f349847b1e0c98c4a66c0b65421
|
7
|
+
data.tar.gz: 035d76978a2ad3cc1172eb4a0c0bb6b6819a9c95f62d66259fe20f2ff364ed2ec189dbac26ba0179ce86d72639ab3f05a9e5cbe31c5bc4199d942a695f06d235
|
data/.rubocop.yml
ADDED
data/.simplecov
ADDED
data/.travis.yml
CHANGED
@@ -1,11 +1,34 @@
|
|
1
1
|
language: ruby
|
2
2
|
|
3
3
|
rvm:
|
4
|
-
- 2.
|
5
|
-
-
|
6
|
-
- 1.9.
|
7
|
-
- ruby-head
|
4
|
+
- 2.1
|
5
|
+
- 2.0.0
|
6
|
+
- 1.9.3
|
7
|
+
- ruby-head
|
8
|
+
|
9
|
+
env:
|
10
|
+
- RUBYGEMS_VERSION=
|
11
|
+
- RUBYGEMS_VERSION=2.2.2
|
12
|
+
- RUBYGEMS_VERSION=2.1.11
|
13
|
+
- RUBYGEMS_VERSION=2.0.14
|
14
|
+
- RUBYGEMS_VERSION=1.8.29
|
15
|
+
|
16
|
+
bundler_args: --without guard
|
17
|
+
|
18
|
+
before_install:
|
19
|
+
- if [ -n "$RUBYGEMS_VERSION" ]; then gem update --system $RUBYGEMS_VERSION; fi
|
20
|
+
- gem --version
|
8
21
|
|
9
22
|
matrix:
|
23
|
+
exclude:
|
24
|
+
- rvm: 2.1
|
25
|
+
env: RUBYGEMS_VERSION=1.8.29
|
26
|
+
- rvm: 2.0.0
|
27
|
+
env: RUBYGEMS_VERSION=1.8.29
|
28
|
+
- rvm: ruby-head
|
29
|
+
env: RUBYGEMS_VERSION=1.8.29
|
10
30
|
allow_failures:
|
11
|
-
|
31
|
+
- rvm: ruby-head
|
32
|
+
|
33
|
+
notifications:
|
34
|
+
irc: "chat.freenode.net#kitchenci"
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 0.3.0 / 2014-10-14
|
2
|
+
|
3
|
+
### New features
|
4
|
+
|
5
|
+
* Upgrade vendored bats version to 0.4.0. ([@fnichol][])
|
6
|
+
|
7
|
+
### Improvments
|
8
|
+
|
9
|
+
* Update testing dependencies, upgrade to RSpec 3.x, freshen TravisCI build matrix, add style and complexity support. ([@fnichol][])
|
10
|
+
* Allow Aruba tests to wait 20 seconds (vs. 10). ([@fnichol][])
|
11
|
+
|
12
|
+
|
1
13
|
## 0.2.0 / 2014-03-23
|
2
14
|
|
3
15
|
### Improvements
|
@@ -10,4 +22,4 @@
|
|
10
22
|
* Initial release
|
11
23
|
|
12
24
|
<!--- The following link definition list is generated by PimpMyChangelog --->
|
13
|
-
[@fnichol]: https://github.com/fnichol
|
25
|
+
[@fnichol]: https://github.com/fnichol
|
data/Gemfile
CHANGED
data/Guardfile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
ignore %r{^\.gem/}
|
3
|
+
|
4
|
+
def rubocop_opts
|
5
|
+
{ :all_on_start => false, :keep_failed => false, :cli => "-r finstyle -D" }
|
6
|
+
end
|
7
|
+
|
8
|
+
group :red_green_refactor, :halt_on_fail => true do
|
9
|
+
guard :cucumber do
|
10
|
+
watch(%r{^features/.+\.feature$})
|
11
|
+
watch(%r{^features/support/.+$}) { "features" }
|
12
|
+
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
|
13
|
+
Dir[File.join("**/#{m[1]}.feature")][0] || "features"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
guard :rubocop, rubocop_opts do
|
18
|
+
watch(%r{.+\.rb$})
|
19
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
20
|
+
end
|
21
|
+
|
22
|
+
guard :cane do
|
23
|
+
watch(%r{.*\.rb})
|
24
|
+
watch(".cane")
|
25
|
+
end
|
26
|
+
end
|
data/README.md
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
# <a name="title"></a> Busser::RunnerPlugin::Bats
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/busser-bats.png)](http://badge.fury.io/rb/busser-bats)
|
3
4
|
[![Build Status](https://travis-ci.org/test-kitchen/busser-bats.png?branch=master)](https://travis-ci.org/test-kitchen/busser-bats)
|
4
5
|
[![Code Climate](https://codeclimate.com/github/test-kitchen/busser-bats.png)](https://codeclimate.com/github/test-kitchen/busser-bats)
|
6
|
+
[![Dependency Status](https://gemnasium.com/test-kitchen/busser-bats.svg)](https://gemnasium.com/test-kitchen/busser-bats)
|
5
7
|
|
6
8
|
A Busser runner plugin for [Bats][bats_site]
|
7
9
|
|
8
10
|
## <a name="installation"></a> Installation and Setup
|
9
11
|
|
10
|
-
|
12
|
+
Until proper reference documentation is complete, the [Writing a Test](http://kitchen.ci/docs/getting-started/writing-test) section of the Test Kitchen's [Getting Started Guide](http://kitchen.ci/docs/getting-started/) gives a working example of creating a bats test.
|
11
13
|
|
12
14
|
## <a name="usage"></a> Usage
|
13
15
|
|
data/Rakefile
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
require "bundler/gem_tasks"
|
2
|
-
require
|
3
|
-
require 'cane/rake_task'
|
4
|
-
require 'open-uri'
|
5
|
-
require 'tailor/rake_task'
|
4
|
+
require "open-uri"
|
6
5
|
|
7
6
|
namespace :bats do
|
8
7
|
|
9
|
-
version = ENV.fetch("BATS_VERSION", "v0.
|
8
|
+
version = ENV.fetch("BATS_VERSION", "v0.4.0")
|
10
9
|
url = "https://github.com/sstephenson/bats/archive/#{version}.tar.gz"
|
11
10
|
tarball = "tmp/bats-#{version}.tar.gz"
|
12
11
|
vendor = "vendor/bats"
|
@@ -41,20 +40,26 @@ namespace :bats do
|
|
41
40
|
end
|
42
41
|
end
|
43
42
|
|
43
|
+
require "cucumber/rake/task"
|
44
44
|
Cucumber::Rake::Task.new(:features) do |t|
|
45
|
-
t.cucumber_opts = [
|
45
|
+
t.cucumber_opts = ["features", "-x", "--format progress"]
|
46
46
|
end
|
47
47
|
|
48
48
|
desc "Run all test suites"
|
49
49
|
task :test => [:features]
|
50
50
|
|
51
|
+
require "finstyle"
|
52
|
+
require "rubocop/rake_task"
|
53
|
+
RuboCop::RakeTask.new(:style) do |task|
|
54
|
+
task.options << "--display-cop-names"
|
55
|
+
end
|
56
|
+
|
57
|
+
require "cane/rake_task"
|
51
58
|
desc "Run cane to check quality metrics"
|
52
59
|
Cane::RakeTask.new do |cane|
|
53
|
-
cane.canefile =
|
60
|
+
cane.canefile = "./.cane"
|
54
61
|
end
|
55
62
|
|
56
|
-
Tailor::RakeTask.new
|
57
|
-
|
58
63
|
desc "Display LOC stats"
|
59
64
|
task :stats do
|
60
65
|
puts "\n## Production Code Stats"
|
@@ -64,6 +69,6 @@ task :stats do
|
|
64
69
|
end
|
65
70
|
|
66
71
|
desc "Run all quality tasks"
|
67
|
-
task :quality => [:cane, :
|
72
|
+
task :quality => [:cane, :style, :stats]
|
68
73
|
|
69
74
|
task :default => [:test, :quality]
|
data/busser-bats.gemspec
CHANGED
@@ -1,30 +1,35 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require "busser/bats/version"
|
5
|
+
require "English"
|
5
6
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
Gem::Specification.new do |gem|
|
8
|
+
gem.name = "busser-bats"
|
9
|
+
gem.version = Busser::Bats::VERSION
|
10
|
+
gem.authors = ["Fletcher Nichol"]
|
11
|
+
gem.email = ["fnichol@nichol.ca"]
|
12
|
+
gem.description = "A Busser runner plugin for Bats"
|
13
|
+
gem.summary = gem.description
|
14
|
+
gem.homepage = "https://github.com/test-kitchen/busser-bats"
|
15
|
+
gem.license = "Apache 2.0"
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
18
|
+
gem.executables = []
|
19
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
20
|
+
gem.require_paths = ["lib"]
|
20
21
|
|
21
|
-
|
22
|
+
gem.add_dependency "busser"
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
gem.add_development_dependency "aruba"
|
25
|
+
gem.add_development_dependency "bundler", "~> 1.3"
|
26
|
+
gem.add_development_dependency "countloc"
|
27
|
+
gem.add_development_dependency "rake"
|
28
|
+
gem.add_development_dependency "simplecov"
|
26
29
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
+
# style and complexity libraries are tightly version pinned as newer releases
|
31
|
+
# may introduce new and undesireable style choices which would be immediately
|
32
|
+
# enforced in CI
|
33
|
+
gem.add_development_dependency "finstyle", "1.2.0"
|
34
|
+
gem.add_development_dependency "cane", "2.6.2"
|
30
35
|
end
|
data/features/support/env.rb
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require "aruba/cucumber"
|
4
|
+
require "busser/cucumber"
|
5
|
+
|
6
|
+
if ENV["COVERAGE"]
|
7
|
+
require "simplecov"
|
8
|
+
SimpleCov.command_name "features"
|
9
|
+
end
|
3
10
|
|
4
11
|
Before do
|
5
|
-
@aruba_timeout_seconds =
|
12
|
+
@aruba_timeout_seconds = 20
|
6
13
|
end
|
7
14
|
|
8
15
|
After do |s|
|
data/lib/busser/bats/version.rb
CHANGED
@@ -16,9 +16,9 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
require
|
19
|
+
require "pathname"
|
20
20
|
|
21
|
-
require
|
21
|
+
require "busser/runner_plugin"
|
22
22
|
|
23
23
|
# A Busser runner plugin for Bats.
|
24
24
|
#
|
@@ -34,6 +34,6 @@ class Busser::RunnerPlugin::Bats < Busser::RunnerPlugin::Base
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def test
|
37
|
-
run!("#{vendor_path(
|
37
|
+
run!("#{vendor_path("bats").join("bin/bats")} #{suite_path("bats")}")
|
38
38
|
end
|
39
39
|
end
|
data/vendor/bats/LICENSE
CHANGED
data/vendor/bats/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Bats: Bash Automated Testing System
|
2
2
|
|
3
|
-
Bats is a [TAP](http://testanything.org
|
3
|
+
Bats is a [TAP](http://testanything.org)-compliant testing framework
|
4
4
|
for Bash. It provides a simple way to verify that the UNIX programs
|
5
5
|
you write behave as expected.
|
6
6
|
|
@@ -30,6 +30,7 @@ Bash's `errexit` (`set -e`) option when running test cases. If every
|
|
30
30
|
command in the test case exits with a `0` status code (success), the
|
31
31
|
test passes. In this way, each line is an assertion of truth.
|
32
32
|
|
33
|
+
|
33
34
|
## Running tests
|
34
35
|
|
35
36
|
To run your tests, invoke the `bats` interpreter with a path to a test
|
@@ -48,9 +49,10 @@ an "X" if it fails.
|
|
48
49
|
2 tests, 0 failures
|
49
50
|
|
50
51
|
If Bats is not connected to a terminal—in other words, if you
|
51
|
-
run it from a continuous integration system or redirect its output to
|
52
|
+
run it from a continuous integration system, or redirect its output to
|
52
53
|
a file—the results are displayed in human-readable, machine-parsable
|
53
|
-
[TAP format](http://testanything.org
|
54
|
+
[TAP format](http://testanything.org).
|
55
|
+
|
54
56
|
You can force TAP output from a terminal by invoking Bats with the
|
55
57
|
`--tap` option.
|
56
58
|
|
@@ -66,18 +68,19 @@ arguments, or with a path to a directory containing multiple `.bats`
|
|
66
68
|
files. Bats will run each test file individually and aggregate the
|
67
69
|
results. If any test case fails, `bats` exits with a `1` status code.
|
68
70
|
|
71
|
+
|
69
72
|
## Writing tests
|
70
73
|
|
71
|
-
Each Bats test file is
|
74
|
+
Each Bats test file is evaluated _n+1_ times, where _n_ is the number of
|
72
75
|
test cases in the file. The first run counts the number of test cases,
|
73
76
|
then iterates over the test cases and executes each one in its own
|
74
77
|
process.
|
75
78
|
|
76
|
-
For details about
|
77
|
-
Evaluation Process](https://github.com/sstephenson/bats/wiki/Bats-Evaluation-Process)
|
79
|
+
For more details about how Bats evaluates test files, see
|
80
|
+
[Bats Evaluation Process](https://github.com/sstephenson/bats/wiki/Bats-Evaluation-Process)
|
78
81
|
on the wiki.
|
79
82
|
|
80
|
-
###
|
83
|
+
### `run`: Test other commands
|
81
84
|
|
82
85
|
Many Bats tests need to run a command and then make assertions about
|
83
86
|
its exit status and output. Bats includes a `run` helper that invokes
|
@@ -114,7 +117,7 @@ the first line:
|
|
114
117
|
}
|
115
118
|
```
|
116
119
|
|
117
|
-
###
|
120
|
+
### `load`: Share common code
|
118
121
|
|
119
122
|
You may want to share common code across multiple test files. Bats
|
120
123
|
includes a convenient `load` command for sourcing a Bash source file
|
@@ -129,7 +132,7 @@ will source the script `test/test_helper.bash` in your test file. This
|
|
129
132
|
can be useful for sharing functions to set up your environment or load
|
130
133
|
fixtures.
|
131
134
|
|
132
|
-
###
|
135
|
+
### `skip`: Easily skip tests
|
133
136
|
|
134
137
|
Tests can be skipped by using the `skip` command at the point in a
|
135
138
|
test you wish to skip.
|
@@ -165,9 +168,9 @@ Or you can skip conditionally:
|
|
165
168
|
}
|
166
169
|
```
|
167
170
|
|
168
|
-
###
|
171
|
+
### `setup` and `teardown`: Pre- and post-test hooks
|
169
172
|
|
170
|
-
You can define special `setup` and `teardown` functions which run
|
173
|
+
You can define special `setup` and `teardown` functions, which run
|
171
174
|
before and after each test case, respectively. Use these to load
|
172
175
|
fixtures, set up your environment, and clean up when you're done.
|
173
176
|
|
@@ -199,6 +202,7 @@ in the test file.
|
|
199
202
|
* `$BATS_TMPDIR` is the location to a directory that may be used to
|
200
203
|
store temporary files.
|
201
204
|
|
205
|
+
|
202
206
|
## Installing Bats from source
|
203
207
|
|
204
208
|
Check out a copy of the Bats repository. Then, either add the Bats
|
@@ -213,6 +217,7 @@ Bats. For example, to install Bats into `/usr/local`,
|
|
213
217
|
Note that you may need to run `install.sh` with `sudo` if you do not
|
214
218
|
have permission to write to the installation prefix.
|
215
219
|
|
220
|
+
|
216
221
|
## Support
|
217
222
|
|
218
223
|
The Bats source code repository is [hosted on
|
@@ -227,7 +232,23 @@ To learn how to set up your editor for Bats syntax highlighting, see
|
|
227
232
|
[Syntax Highlighting](https://github.com/sstephenson/bats/wiki/Syntax-Highlighting)
|
228
233
|
on the wiki.
|
229
234
|
|
230
|
-
|
235
|
+
|
236
|
+
## Version history
|
237
|
+
|
238
|
+
*0.4.0* (August 13, 2014)
|
239
|
+
|
240
|
+
* Improved the display of failing test cases. Bats now shows the
|
241
|
+
source code of failing test lines, along with full stack traces
|
242
|
+
including function names, filenames, and line numbers.
|
243
|
+
* Improved the display of the pretty-printed test summary line to
|
244
|
+
include the number of skipped tests, if any.
|
245
|
+
* Improved the speed of the preprocessor, dramatically shortening test
|
246
|
+
and suite startup times.
|
247
|
+
* Added support for absolute pathnames to the `load` helper.
|
248
|
+
* Added support for single-line `@test` definitions.
|
249
|
+
* Added bats(1) and bats(7) manual pages.
|
250
|
+
* Modified the `bats` command to default to TAP output when the `$CI`
|
251
|
+
variable is set, to better support environments such as Travis CI.
|
231
252
|
|
232
253
|
*0.3.1* (October 28, 2013)
|
233
254
|
|
@@ -268,5 +289,5 @@ on the wiki.
|
|
268
289
|
|
269
290
|
---
|
270
291
|
|
271
|
-
©
|
292
|
+
© 2014 Sam Stephenson. Bats is released under an MIT-style license;
|
272
293
|
see `LICENSE` for details.
|