forked from cucumber/cucumber-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrate JSON features over to aruba_features
- Loading branch information
1 parent
7263571
commit d693314
Showing
23 changed files
with
350 additions
and
511 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,5 +38,4 @@ Feature: Custom Formatter | |
I'LL USE MY OWN | ||
JUST PRINT ME | ||
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,241 @@ | ||
Feature: JSON output formatter | ||
In order to simplify processing of Cucumber features and results | ||
Developers should be able to consume features as JSON | ||
|
||
Background: | ||
Given a file named "features/one_passing_one_failing.feature" with: | ||
""" | ||
@a | ||
Feature: One passing scenario, one failing scenario | ||
@b | ||
Scenario: Passing | ||
Given a passing step | ||
@c | ||
Scenario: Failing | ||
Given a failing step | ||
""" | ||
And a file named "features/step_definitions/steps.rb" with: | ||
""" | ||
Given /a passing step/ do | ||
#does nothing | ||
end | ||
Given /a failing step/ do | ||
fail | ||
end | ||
Given /a pending step/ do | ||
pending | ||
end | ||
Given /^I add (\d+) and (\d+)$/ do |a,b| | ||
@result = a.to_i + b.to_i | ||
end | ||
Then /^I the result should be (\d+)$/ do |c| | ||
@result.should == c.to_i | ||
end | ||
Then /^I should see/ do |string| | ||
end | ||
Given /^I pass a table argument/ do |table| | ||
end | ||
Given /^I embed a screenshot/ do | ||
File.open("screenshot.png", "w") { |file| file << "foo" } | ||
embed "screenshot.png", "image/png" | ||
end | ||
""" | ||
And a file named "features/embed.feature" with: | ||
""" | ||
Feature: A screenshot feature | ||
Scenario: | ||
Given I embed a screenshot | ||
""" | ||
|
||
Scenario: one feature, one passing scenario, one failing scenario | ||
When I run cucumber "--format json features/one_passing_one_failing.feature" | ||
Then the output should match /^\{"features":\[/ | ||
|
||
Scenario: one feature, one passing scenario, one failing scenario | ||
When I run cucumber "--format json features/one_passing_one_failing.feature" | ||
Then it should fail with JSON: | ||
""" | ||
{ | ||
"features": [ | ||
{ | ||
"keyword": "Feature", | ||
"name": "One passing scenario, one failing scenario", | ||
"line": 2, | ||
"description": "", | ||
"tags": [ | ||
{ | ||
"name": "@a", | ||
"line": 1 | ||
} | ||
], | ||
"elements": [ | ||
{ | ||
"keyword": "Scenario", | ||
"name": "Passing", | ||
"line": 5, | ||
"description": "", | ||
"tags": [ | ||
{ | ||
"name": "@b", | ||
"line": 4 | ||
} | ||
], | ||
"type": "scenario", | ||
"steps": [ | ||
{ | ||
"keyword": "Given ", | ||
"name": "a passing step", | ||
"line": 6, | ||
"match": { | ||
"location": "features/step_definitions/steps.rb:1" | ||
}, | ||
"result": { | ||
"status": "passed" | ||
} | ||
} | ||
] | ||
}, | ||
{ | ||
"keyword": "Scenario", | ||
"name": "Failing", | ||
"line": 9, | ||
"description": "", | ||
"tags": [ | ||
{ | ||
"name": "@c", | ||
"line": 8 | ||
} | ||
], | ||
"type": "scenario", | ||
"steps": [ | ||
{ | ||
"keyword": "Given ", | ||
"name": "a failing step", | ||
"line": 10, | ||
"match": { | ||
"location": "features/step_definitions/steps.rb:5" | ||
}, | ||
"result": { | ||
"status": "failed", | ||
"error_message": " (RuntimeError)\n./features/step_definitions/steps.rb:6:in `/a failing step/'\nfeatures/one_passing_one_failing.feature:10:in `Given a failing step'" | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
""" | ||
|
||
Scenario: pystring | ||
Given a file named "features/pystring.feature" with: | ||
""" | ||
Feature: A py string feature | ||
Scenario: | ||
Then I should see | ||
\"\"\" | ||
a string | ||
\"\"\" | ||
""" | ||
When I run cucumber "--format json features/pystring.feature" | ||
Then it should pass with JSON: | ||
""" | ||
{ | ||
"features": [ | ||
{ | ||
"keyword": "Feature", | ||
"name": "A py string feature", | ||
"line": 1, | ||
"description": "", | ||
"elements": [ | ||
{ | ||
"keyword": "Scenario", | ||
"name": "", | ||
"line": 3, | ||
"description": "", | ||
"type": "scenario", | ||
"steps": [ | ||
{ | ||
"keyword": "Then ", | ||
"name": "I should see", | ||
"line": 4, | ||
"multiline_arg": { | ||
"value": "a string", | ||
"line": 5, | ||
"type": "py_string" | ||
}, | ||
"match": { | ||
"location": "features/step_definitions/steps.rb:21" | ||
}, | ||
"result": { | ||
"status": "passed" | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
""" | ||
|
||
Scenario: embedding screenshot | ||
When I run cucumber "-b --format json features/embed.feature" | ||
Then it should pass with JSON: | ||
""" | ||
{ | ||
"features": [ | ||
{ | ||
"keyword": "Feature", | ||
"name": "A screenshot feature", | ||
"line": 1, | ||
"description": "", | ||
"elements": [ | ||
{ | ||
"keyword": "Scenario", | ||
"name": "", | ||
"line": 3, | ||
"description": "", | ||
"type": "scenario", | ||
"steps": [ | ||
{ | ||
"keyword": "Given ", | ||
"name": "I embed a screenshot", | ||
"line": 4, | ||
"embeddings": [ | ||
{ | ||
"mime_type": "image/png", | ||
"data": "Zm9v" | ||
} | ||
], | ||
"match": { | ||
"location": "features/step_definitions/steps.rb:29" | ||
}, | ||
"result": { | ||
"status": "passed" | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.