spinach 0.11.0 → 0.12.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +4 -5
- data/.ruby-version +1 -1
- data/.tool-versions +1 -0
- data/Gemfile +0 -1
- data/README.markdown +5 -7
- data/bin/spinach +1 -1
- data/features/feature_hooks_and_tags.feature +22 -0
- data/features/steps/automatic_feature_generation.rb +1 -1
- data/features/steps/feature_hooks_and_tags.rb +55 -0
- data/features/support/env.rb +0 -13
- data/lib/spinach/cli.rb +1 -1
- data/lib/spinach/runner.rb +4 -2
- data/lib/spinach/tags_matcher.rb +11 -2
- data/lib/spinach/version.rb +1 -1
- data/spinach.gemspec +1 -4
- data/test/spinach/cli_test.rb +5 -5
- data/test/spinach/dsl_test.rb +1 -1
- data/test/spinach/generators/feature_generator_test.rb +1 -1
- data/test/spinach/reporter_test.rb +2 -2
- data/test/spinach/runner_test.rb +24 -7
- data/test/test_helper.rb +0 -13
- metadata +11 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13ae199ec9413a41d2f1ea007433f4ca9acf8750811468e320927c55cc6ae80d
|
4
|
+
data.tar.gz: 37383a9a6e243a01d113cbe64139ce7119af7c571dcb12589846b8737115ac9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16007d35b6d52765c78a9e82e7f08e484d6d8f6ddc8ff4de765472ec11c7e236d6dd92de7cb5e89f8d8bda7ddc042fddbc2480ba92b00793784ca5d2d22c0e12
|
7
|
+
data.tar.gz: ff6aad6deac02d61cf3f932afacf62bedb0f16aaa07e415ea1a675c7ac79e815d030ebb86f039e4d726bd5481226f12326c9d9060d0c4f999c820e5226a1a118
|
data/.github/workflows/ci.yml
CHANGED
@@ -17,15 +17,14 @@ jobs:
|
|
17
17
|
runs-on: ubuntu-latest
|
18
18
|
strategy:
|
19
19
|
matrix:
|
20
|
-
ruby: [2.4, 2.5, 2.6, 2.7, jruby]
|
20
|
+
ruby: [2.4, 2.5, 2.6, 2.7, "3.0", 3.1, 3.2, jruby]
|
21
21
|
fail-fast: false
|
22
22
|
steps:
|
23
|
-
- uses: actions/checkout@
|
23
|
+
- uses: actions/checkout@v3
|
24
24
|
with:
|
25
25
|
fetch-depth: 1
|
26
|
-
- uses: ruby/setup-ruby@
|
26
|
+
- uses: ruby/setup-ruby@v1
|
27
27
|
with:
|
28
28
|
ruby-version: ${{ matrix.ruby }}
|
29
|
-
|
30
|
-
name: Install Ruby deps
|
29
|
+
bundler-cache: true
|
31
30
|
- run: bundle exec rake
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
3.2.0
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 3.2.1
|
data/Gemfile
CHANGED
data/README.markdown
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/spinach)
|
4
4
|

|
5
|
-
[](https://coveralls.io/r/codegram/spinach)
|
6
|
-

|
7
5
|
|
8
6
|
Spinach is a high-level BDD framework that leverages the expressive
|
9
7
|
[Gherkin language][gherkin] (used by [Cucumber][cucumber]) to help you define
|
@@ -17,7 +15,7 @@ Conceived as an alternative to Cucumber, here are some of its design goals:
|
|
17
15
|
- Step reusability: In case you want to reuse steps across features, you can
|
18
16
|
always wrap those in plain ol' Ruby modules.
|
19
17
|
|
20
|
-
Spinach is tested against Ruby MRI **2.4, 2.5, 2.6
|
18
|
+
Spinach is tested against Ruby MRI **2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2** as well as **JRuby **.
|
21
19
|
|
22
20
|
## Getting started
|
23
21
|
|
@@ -238,19 +236,19 @@ Feature: So something great
|
|
238
236
|
Scenario: Ensure no regression on this
|
239
237
|
```
|
240
238
|
|
241
|
-
Then you can run all Scenarios in your suite
|
239
|
+
Then you can run all Scenarios in your suite tagged `@feat-1` using:
|
242
240
|
|
243
241
|
```shell
|
244
242
|
$ spinach --tags @feat-1
|
245
243
|
```
|
246
244
|
|
247
|
-
Or only Scenarios
|
245
|
+
Or only Scenarios tagged either `@feat-1` or `@bug-12` using:
|
248
246
|
|
249
247
|
```shell
|
250
248
|
$ spinach --tags @feat-1,@bug-12
|
251
249
|
```
|
252
250
|
|
253
|
-
Or only Scenarios
|
251
|
+
Or only Scenarios tagged `@feat-1` that aren't tagged `@bug-12` using:
|
254
252
|
|
255
253
|
```shell
|
256
254
|
$ spinach --tags @feat-1,~@bug-12
|
@@ -380,7 +378,7 @@ You can easily contribute to Spinach. Its codebase is simple and
|
|
380
378
|
|
381
379
|
## License
|
382
380
|
|
383
|
-
MIT (Expat) License. Copyright 2011-
|
381
|
+
MIT (Expat) License. Copyright 2011-2023 [Codegram Technologies](http://codegram.com)
|
384
382
|
|
385
383
|
[gherkin]: http://github.com/codegram/gherkin-ruby
|
386
384
|
[cucumber]: http://github.com/cucumber/cucumber
|
data/bin/spinach
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Feature Hooks and Tags
|
2
|
+
In order to run only the appropriate setup and teardown code
|
3
|
+
As a developer
|
4
|
+
I want spinach to only run feature hooks if those features would be run under the tags I provided
|
5
|
+
|
6
|
+
Scenario: No tags specified
|
7
|
+
Given I have a tagged feature with an untagged scenario
|
8
|
+
And I have an untagged feature with a tagged scenario
|
9
|
+
When I don't specify tags
|
10
|
+
Then all the feature hooks should have run
|
11
|
+
|
12
|
+
Scenario: Tags specified
|
13
|
+
Given I have a tagged feature with an untagged scenario
|
14
|
+
And I have an untagged feature with a tagged scenario
|
15
|
+
When I specify a tag the features and scenarios are tagged with
|
16
|
+
Then all the feature hooks should have run
|
17
|
+
|
18
|
+
Scenario: Tags excluded
|
19
|
+
Given I have a tagged feature with an untagged scenario
|
20
|
+
And I have an untagged feature with a tagged scenario
|
21
|
+
When I exclude a tag the features and scenarios are tagged with
|
22
|
+
Then no feature hooks should have run
|
@@ -20,7 +20,7 @@ Feature: Cheezburger can I has
|
|
20
20
|
Then 'I a feature should exist named "features/steps/cheezburger_can_i_has.rb"' do
|
21
21
|
in_current_dir do
|
22
22
|
@file = 'features/steps/cheezburger_can_i_has.rb'
|
23
|
-
File.
|
23
|
+
File.exist?(@file).must_equal true
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
class Spinach::Features::FeatureHooksAndTags < Spinach::FeatureSteps
|
2
|
+
include Integration::SpinachRunner
|
3
|
+
|
4
|
+
step 'I have a tagged feature with an untagged scenario' do
|
5
|
+
write_file 'features/a.feature', <<-FEATURE
|
6
|
+
@tag
|
7
|
+
Feature: A
|
8
|
+
Scenario: A1
|
9
|
+
Then a1
|
10
|
+
FEATURE
|
11
|
+
|
12
|
+
write_file 'features/steps/a.rb', <<-STEPS
|
13
|
+
class Spinach::Features::A < Spinach::FeatureSteps
|
14
|
+
step 'a1' do; end
|
15
|
+
end
|
16
|
+
STEPS
|
17
|
+
end
|
18
|
+
|
19
|
+
step 'I have an untagged feature with a tagged scenario' do
|
20
|
+
write_file 'features/b.feature', <<-FEATURE
|
21
|
+
Feature: B
|
22
|
+
@tag
|
23
|
+
Scenario: B1
|
24
|
+
Then b1
|
25
|
+
FEATURE
|
26
|
+
|
27
|
+
write_file 'features/steps/b.rb', <<-STEPS
|
28
|
+
class Spinach::Features::B < Spinach::FeatureSteps
|
29
|
+
step 'b1' do; end
|
30
|
+
end
|
31
|
+
STEPS
|
32
|
+
end
|
33
|
+
|
34
|
+
step "I don't specify tags" do
|
35
|
+
run_spinach
|
36
|
+
end
|
37
|
+
|
38
|
+
step 'I specify a tag the features and scenarios are tagged with' do
|
39
|
+
run_spinach({append: "--tags @tag"})
|
40
|
+
end
|
41
|
+
|
42
|
+
step 'I exclude a tag the features and scenarios are tagged with' do
|
43
|
+
run_spinach({append: "--tags ~@tag"})
|
44
|
+
end
|
45
|
+
|
46
|
+
step 'all the feature hooks should have run' do
|
47
|
+
@stdout.must_match("Feature: A")
|
48
|
+
@stdout.must_match("Feature: B")
|
49
|
+
end
|
50
|
+
|
51
|
+
step 'no feature hooks should have run' do
|
52
|
+
@stdout.wont_match("Feature: A")
|
53
|
+
@stdout.wont_match("Feature: B")
|
54
|
+
end
|
55
|
+
end
|
data/features/support/env.rb
CHANGED
@@ -1,19 +1,6 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
2
|
require 'minitest/spec'
|
3
3
|
require_relative 'filesystem'
|
4
|
-
require 'simplecov'
|
5
|
-
|
6
|
-
if ENV['CI'] && !defined?(Rubinius)
|
7
|
-
require 'coveralls'
|
8
|
-
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
9
|
-
require 'simplecov'
|
10
|
-
|
11
|
-
SimpleCov.start do
|
12
|
-
add_filter '/test/'
|
13
|
-
add_filter '/features/'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
4
|
|
18
5
|
Spinach.hooks.after_scenario do |scenario|
|
19
6
|
FileUtils.rm_rf(Filesystem.dirs)
|
data/lib/spinach/cli.rb
CHANGED
data/lib/spinach/runner.rb
CHANGED
@@ -151,7 +151,7 @@ module Spinach
|
|
151
151
|
end
|
152
152
|
|
153
153
|
def features_to_run
|
154
|
-
unordered_features = filenames.
|
154
|
+
unordered_features = filenames.reduce([]) do |features, filename|
|
155
155
|
file, *lines = filename.split(":") # little more complex than just a "filename"
|
156
156
|
|
157
157
|
# FIXME Feature should be instantiated directly, not through an unrelated class method
|
@@ -160,7 +160,9 @@ module Spinach
|
|
160
160
|
|
161
161
|
feature.lines_to_run = lines if lines.any?
|
162
162
|
|
163
|
-
feature
|
163
|
+
features << feature if TagsMatcher.match_feature(feature)
|
164
|
+
|
165
|
+
features
|
164
166
|
end
|
165
167
|
|
166
168
|
orderer.order(unordered_features)
|
data/lib/spinach/tags_matcher.rb
CHANGED
@@ -6,9 +6,9 @@ module Spinach
|
|
6
6
|
class << self
|
7
7
|
|
8
8
|
# Matches an array of tags (e.g. of a scenario) against the tags present
|
9
|
-
# in Spinach' runtime options.
|
9
|
+
# in Spinach's runtime options.
|
10
10
|
#
|
11
|
-
# Spinach' tag option is an array which consists of (possibly) multiple
|
11
|
+
# Spinach's tag option is an array which consists of (possibly) multiple
|
12
12
|
# arrays containing tags provided by the user running the features and
|
13
13
|
# scenarios. Each of these arrays is considered a tag group.
|
14
14
|
#
|
@@ -23,6 +23,15 @@ module Spinach
|
|
23
23
|
}
|
24
24
|
end
|
25
25
|
|
26
|
+
# Matches the tags of a feature (and its scenarios) against the tags present
|
27
|
+
# in Spinach's runtime options.
|
28
|
+
#
|
29
|
+
# A feature matches when, for any of its scenarios, the combination of the
|
30
|
+
# feature's tags and that scenario's tags match the configured tags.
|
31
|
+
def match_feature(feature)
|
32
|
+
feature.scenarios.any? { |scenario| match(feature.tags + scenario.tags) }
|
33
|
+
end
|
34
|
+
|
26
35
|
private
|
27
36
|
|
28
37
|
def tag_groups
|
data/lib/spinach/version.rb
CHANGED
data/spinach.gemspec
CHANGED
@@ -3,8 +3,7 @@ require File.expand_path('../lib/spinach/version', __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.authors = ["Josep Jaume Rey", "Josep M. Bach", "Oriol Gual", "Marc Divins Castellvi"]
|
6
|
-
gem.email = ["
|
7
|
-
"oriolgual@gmail.com", "josepjaume@gmail.com", "marcdivc@gmail.com"]
|
6
|
+
gem.email = ["josep.m.bach@gmail.com", "oriolgual@gmail.com", "josepjaume@gmail.com", "marcdivc@gmail.com"]
|
8
7
|
gem.description = %q{Spinach is a BDD framework on top of gherkin}
|
9
8
|
gem.summary = %q{Spinach is a BDD framework on top of gherkin}
|
10
9
|
gem.homepage = "http://github.com/codegram/spinach"
|
@@ -12,13 +11,11 @@ Gem::Specification.new do |gem|
|
|
12
11
|
|
13
12
|
gem.add_runtime_dependency 'gherkin-ruby', '>= 0.3.2'
|
14
13
|
gem.add_runtime_dependency 'colorize'
|
15
|
-
gem.add_runtime_dependency 'json'
|
16
14
|
gem.add_development_dependency 'rake'
|
17
15
|
gem.add_development_dependency 'mocha', "~> 1.5.0"
|
18
16
|
gem.add_development_dependency 'sinatra'
|
19
17
|
gem.add_development_dependency 'capybara'
|
20
18
|
gem.add_development_dependency 'pry'
|
21
|
-
gem.add_development_dependency 'simplecov'
|
22
19
|
gem.add_development_dependency 'rspec'
|
23
20
|
gem.add_development_dependency 'minitest', '< 5.0'
|
24
21
|
gem.add_development_dependency 'fakefs', ">= 0.5.2"
|
data/test/spinach/cli_test.rb
CHANGED
@@ -276,14 +276,14 @@ tags:
|
|
276
276
|
describe 'the feature really exists' do
|
277
277
|
it 'runs the feature' do
|
278
278
|
cli = Spinach::Cli.new(['features/some_feature.feature'])
|
279
|
-
File.stubs(:
|
279
|
+
File.stubs(:exist?).returns(true)
|
280
280
|
cli.feature_files.must_equal ['features/some_feature.feature']
|
281
281
|
end
|
282
282
|
end
|
283
283
|
|
284
284
|
it 'it fails if the feature does not exist' do
|
285
285
|
cli = Spinach::Cli.new(['features/some_feature.feature'])
|
286
|
-
File.stubs(:
|
286
|
+
File.stubs(:exist?).returns(false)
|
287
287
|
cli.expects(:fail!).with('features/some_feature.feature could not be found')
|
288
288
|
|
289
289
|
cli.feature_files
|
@@ -293,7 +293,7 @@ tags:
|
|
293
293
|
describe 'when a particular feature list is passed with line' do
|
294
294
|
it 'returns the feature with the line number' do
|
295
295
|
cli = Spinach::Cli.new(['features/some_feature.feature:10'])
|
296
|
-
File.stubs(:
|
296
|
+
File.stubs(:exist?).returns(true)
|
297
297
|
|
298
298
|
cli.feature_files.must_equal ['features/some_feature.feature:10']
|
299
299
|
end
|
@@ -302,7 +302,7 @@ tags:
|
|
302
302
|
describe "when a particular feature list is passed with multiple lines" do
|
303
303
|
it "returns the feature with the line numbers" do
|
304
304
|
cli = Spinach::Cli.new(['features/some_feature.feature:10:20'])
|
305
|
-
File.stubs(:
|
305
|
+
File.stubs(:exist?).returns(true)
|
306
306
|
|
307
307
|
cli.feature_files.must_equal ["features/some_feature.feature:10:20"]
|
308
308
|
end
|
@@ -337,7 +337,7 @@ tags:
|
|
337
337
|
Dir.expects(:glob).with('path/to/features/**/*.feature')
|
338
338
|
.returns(['several features'])
|
339
339
|
|
340
|
-
File.stubs(:
|
340
|
+
File.stubs(:exist?).returns(true)
|
341
341
|
|
342
342
|
cli.feature_files.must_equal ['several features', 'some_feature.feature']
|
343
343
|
end
|
data/test/spinach/dsl_test.rb
CHANGED
@@ -157,7 +157,7 @@ describe Spinach::DSL do
|
|
157
157
|
end
|
158
158
|
|
159
159
|
@feature.new.step_location_for('I say goodbye').first.must_include '/dsl_test.rb'
|
160
|
-
@feature.new.step_location_for('I say goodbye').last.must_be_kind_of
|
160
|
+
@feature.new.step_location_for('I say goodbye').last.must_be_kind_of Integer
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
@@ -71,7 +71,7 @@ Feature: Cheezburger can I has
|
|
71
71
|
in_current_dir do
|
72
72
|
subject.store
|
73
73
|
File.directory?("features/steps/").must_equal true
|
74
|
-
File.
|
74
|
+
File.exist?("features/steps/cheezburger_can_i_has.rb").must_equal true
|
75
75
|
File.read("features/steps/cheezburger_can_i_has.rb").strip.must_equal(
|
76
76
|
subject.generate.strip
|
77
77
|
)
|
@@ -89,8 +89,8 @@ module Spinach
|
|
89
89
|
|
90
90
|
it "binds a callback around every scenario" do
|
91
91
|
@reporter.expects(:around_scenario_run)
|
92
|
-
Spinach.hooks.run_around_scenario(anything) do
|
93
|
-
|
92
|
+
Spinach.hooks.run_around_scenario(anything) do |&block|
|
93
|
+
block.call
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
data/test/spinach/runner_test.rb
CHANGED
@@ -77,15 +77,21 @@ describe Spinach::Runner do
|
|
77
77
|
describe '#run' do
|
78
78
|
before(:each) do
|
79
79
|
@feature_runner = stub
|
80
|
+
@feature_runner.stubs(:run).returns(true)
|
81
|
+
|
80
82
|
filenames.each do |filename|
|
81
|
-
|
82
|
-
|
83
|
+
parser = stub
|
84
|
+
Spinach::Parser.stubs(:open_file).with(filename).returns(parser)
|
85
|
+
|
86
|
+
feature = Spinach::Feature.new
|
87
|
+
feature.scenarios << Spinach::Scenario.new(feature)
|
88
|
+
parser.stubs(:parse).returns(feature)
|
89
|
+
|
83
90
|
Spinach::Runner::FeatureRunner.stubs(:new).
|
84
91
|
with(feature, anything).
|
85
92
|
returns(@feature_runner)
|
86
93
|
end
|
87
94
|
|
88
|
-
@feature_runner.stubs(:run).returns(true)
|
89
95
|
runner.stubs(required_files: [])
|
90
96
|
end
|
91
97
|
|
@@ -133,12 +139,18 @@ describe Spinach::Runner do
|
|
133
139
|
let(:runner) { Spinach::Runner.new(filenames) }
|
134
140
|
|
135
141
|
before(:each) do
|
142
|
+
parser = stub
|
143
|
+
Spinach::Parser.stubs(:open_file).with(filename).returns(parser)
|
144
|
+
|
145
|
+
@feature = Spinach::Feature.new
|
146
|
+
@feature.scenarios << Spinach::Scenario.new(@feature)
|
147
|
+
parser.stubs(:parse).returns(@feature)
|
148
|
+
|
136
149
|
@feature_runner = stub
|
137
|
-
Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
|
138
|
-
parser.stubs(:parse).returns @feature = Spinach::Feature.new
|
139
150
|
Spinach::Runner::FeatureRunner.stubs(:new).
|
140
151
|
with(@feature, anything).
|
141
152
|
returns(@feature_runner)
|
153
|
+
|
142
154
|
runner.stubs(required_files: [])
|
143
155
|
end
|
144
156
|
|
@@ -174,8 +186,13 @@ describe Spinach::Runner do
|
|
174
186
|
|
175
187
|
before(:each) do
|
176
188
|
filenames.each_with_index do |filename, i|
|
177
|
-
|
178
|
-
|
189
|
+
parser = stub
|
190
|
+
Spinach::Parser.stubs(:open_file).with(filename).returns(parser)
|
191
|
+
|
192
|
+
feature = Spinach::Feature.new
|
193
|
+
feature.scenarios << Spinach::Scenario.new(feature)
|
194
|
+
parser.stubs(:parse).returns(feature)
|
195
|
+
|
179
196
|
Spinach::Runner::FeatureRunner.stubs(:new).
|
180
197
|
with(feature, anything).
|
181
198
|
returns(feature_runners[i])
|
data/test/test_helper.rb
CHANGED
@@ -1,16 +1,3 @@
|
|
1
|
-
require 'simplecov'
|
2
|
-
require 'coveralls'
|
3
|
-
|
4
|
-
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
5
|
-
if ENV['CI'] && !defined?(Rubinius)
|
6
|
-
require 'simplecov'
|
7
|
-
|
8
|
-
SimpleCov.start do
|
9
|
-
add_filter '/test/'
|
10
|
-
add_filter '/features/'
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
1
|
require 'minitest/autorun'
|
15
2
|
require 'minitest/spec'
|
16
3
|
require 'mocha/minitest'
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spinach
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey
|
8
8
|
- Josep M. Bach
|
9
9
|
- Oriol Gual
|
10
10
|
- Marc Divins Castellvi
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2023-02-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: gherkin-ruby
|
@@ -41,20 +41,6 @@ dependencies:
|
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '0'
|
44
|
-
- !ruby/object:Gem::Dependency
|
45
|
-
name: json
|
46
|
-
requirement: !ruby/object:Gem::Requirement
|
47
|
-
requirements:
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '0'
|
51
|
-
type: :runtime
|
52
|
-
prerelease: false
|
53
|
-
version_requirements: !ruby/object:Gem::Requirement
|
54
|
-
requirements:
|
55
|
-
- - ">="
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '0'
|
58
44
|
- !ruby/object:Gem::Dependency
|
59
45
|
name: rake
|
60
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,20 +111,6 @@ dependencies:
|
|
125
111
|
- - ">="
|
126
112
|
- !ruby/object:Gem::Version
|
127
113
|
version: '0'
|
128
|
-
- !ruby/object:Gem::Dependency
|
129
|
-
name: simplecov
|
130
|
-
requirement: !ruby/object:Gem::Requirement
|
131
|
-
requirements:
|
132
|
-
- - ">="
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: '0'
|
135
|
-
type: :development
|
136
|
-
prerelease: false
|
137
|
-
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
requirements:
|
139
|
-
- - ">="
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
142
114
|
- !ruby/object:Gem::Dependency
|
143
115
|
name: rspec
|
144
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,7 +155,6 @@ dependencies:
|
|
183
155
|
version: 0.5.2
|
184
156
|
description: Spinach is a BDD framework on top of gherkin
|
185
157
|
email:
|
186
|
-
- info@codegram.com
|
187
158
|
- josep.m.bach@gmail.com
|
188
159
|
- oriolgual@gmail.com
|
189
160
|
- josepjaume@gmail.com
|
@@ -198,6 +169,7 @@ files:
|
|
198
169
|
- ".gitignore"
|
199
170
|
- ".ruby-gemset"
|
200
171
|
- ".ruby-version"
|
172
|
+
- ".tool-versions"
|
201
173
|
- CHANGELOG.md
|
202
174
|
- Gemfile
|
203
175
|
- Guardfile
|
@@ -211,6 +183,7 @@ files:
|
|
211
183
|
- features/before_and_after_hooks_inheritance.feature
|
212
184
|
- features/exit_status.feature
|
213
185
|
- features/fail_fast.feature
|
186
|
+
- features/feature_hooks_and_tags.feature
|
214
187
|
- features/feature_name_guessing.feature
|
215
188
|
- features/pending_steps.feature
|
216
189
|
- features/randomization.feature
|
@@ -229,6 +202,7 @@ files:
|
|
229
202
|
- features/steps/before_and_after_hooks_inheritance.rb
|
230
203
|
- features/steps/exit_status.rb
|
231
204
|
- features/steps/fail_fast_option.rb
|
205
|
+
- features/steps/feature_hooks_and_tags.rb
|
232
206
|
- features/steps/feature_name_guessing.rb
|
233
207
|
- features/steps/pending_steps.rb
|
234
208
|
- features/steps/randomizing_features_scenarios.rb
|
@@ -321,7 +295,7 @@ homepage: http://github.com/codegram/spinach
|
|
321
295
|
licenses:
|
322
296
|
- MIT
|
323
297
|
metadata: {}
|
324
|
-
post_install_message:
|
298
|
+
post_install_message:
|
325
299
|
rdoc_options: []
|
326
300
|
require_paths:
|
327
301
|
- lib
|
@@ -336,8 +310,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
336
310
|
- !ruby/object:Gem::Version
|
337
311
|
version: '0'
|
338
312
|
requirements: []
|
339
|
-
rubygems_version: 3.
|
340
|
-
signing_key:
|
313
|
+
rubygems_version: 3.4.6
|
314
|
+
signing_key:
|
341
315
|
specification_version: 4
|
342
316
|
summary: Spinach is a BDD framework on top of gherkin
|
343
317
|
test_files:
|
@@ -347,6 +321,7 @@ test_files:
|
|
347
321
|
- features/before_and_after_hooks_inheritance.feature
|
348
322
|
- features/exit_status.feature
|
349
323
|
- features/fail_fast.feature
|
324
|
+
- features/feature_hooks_and_tags.feature
|
350
325
|
- features/feature_name_guessing.feature
|
351
326
|
- features/pending_steps.feature
|
352
327
|
- features/randomization.feature
|
@@ -365,6 +340,7 @@ test_files:
|
|
365
340
|
- features/steps/before_and_after_hooks_inheritance.rb
|
366
341
|
- features/steps/exit_status.rb
|
367
342
|
- features/steps/fail_fast_option.rb
|
343
|
+
- features/steps/feature_hooks_and_tags.rb
|
368
344
|
- features/steps/feature_name_guessing.rb
|
369
345
|
- features/steps/pending_steps.rb
|
370
346
|
- features/steps/randomizing_features_scenarios.rb
|