cucumber/cucumber-jvm — Issue #127: Can't run the Cross Platform Rake
Author: eladkatz
Created: 2012-01-04 17:37:33+00:00
State: open

Followed the steps at:
https://github.com/cucumber/cucumber-jvm
these are:
Running cross-platform Cucumber features

All Cucumber implementations (cucumber-ruby, cucumber-jvm, cucumber-js) share a common set of Cucumber features to ensure all implementations support the same basic features. To run these you need to clone the cucumber-tck repo into your cucumber-jvm working copy:

git submodule update --init

Now you can run the cross-platform Cucumber features:

gem install bundler
bundle install
rake

When I run the rake command, it fails

See below for more information:
C:\Dev\cucumber>RAKE -v -t >bug.txt
** Invoke default (first_time)
** Invoke picocontainer (first_time)
** Execute picocontainer
C:/Dev/Ruby193/bin/ruby -S bundle exec cucumber -r java/src/test/resources/cucumber-tck -r cucumber-tck cucumber-tck
*** WARNING: You must use ANSICON 1.31 or higher (http://adoxa.110mb.com/ansicon) to get coloured output on Windows
C:/Dev/Ruby193/lib/ruby/gems/1.9.1/gems/ffi-1.0.9-x86-mingw32/lib/ffi/platform.rb:27: Use RbConfig instead of obsolete and deprecated Config.
rake aborted!
Command failed with status (1): [C:/Dev/Ruby193/bin/ruby -S bundle exec cuc...]
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/file_utils.rb:53:in `block in create_shell_runner'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/file_utils.rb:45:in `call'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/file_utils.rb:45:in `sh'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:in `sh'
C:/Dev/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.1.2/lib/cucumber/rake/task.rb:104:in `run'
C:/Dev/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.1.2/lib/cucumber/rake/task.rb:193:in `block in define_task'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:205:in `call'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:200:in `each'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
C:/Dev/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:176:in `block in invoke_prerequisites'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:174:in `each'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:174:in `invoke_prerequisites'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:157:in `block in invoke_with_call_chain'
C:/Dev/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `each'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
C:/Dev/Ruby193/lib/ruby/1.9.1/rake/application.rb:63:in `run'
C:/Dev/Ruby193/bin/rake:32:in `

'
Tasks: TOP => default => picocontainer

--

Feature: Backgrounds

Feature: Calling steps from step definitions

Feature: Command line interface

Feature: Command line options

Feature: Comments

Comments can be inserted pretty much anywhere within feature files. Those comments start with a hash sign (#) and are not interpreted by Cucumber.

Scenario: Comments in a feature file # cucumber-tck\comments.feature:5
Given the following feature: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:12
"""
# Hi.
Feature: some feature
Comments can be (almost) everywhere.
# And another comment

Scenario: some scenario
# Yet another one.
When a step runs
Then a step runs
# Oh my, comments are everywhere.
# Thank you for reading.
"""
When Cucumber runs the feature # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\comments.feature:20:in `When Cucumber runs the feature'
Then the feature passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:146

Feature: Core: Scenarios, Steps, Mappings

Cucumber is a tool for executing business-readable specifications
written in Gherkin. The basic unit of both specification and
execution is the Scenario. A Scenario is a list of steps, each of
which representing an action performed by a user (or user agent)
on the software product under development. When a Scenario is
executed, its steps are applied to the software system in the order
they are contained in the Scenario.

Gherkin is not a programming language, so in order to execute steps
written in it, Cucumber must first look up a mapping from the text of
each step to a function. If such a mapping exists, the function is
executed, and the result is communicated to the user.

Scenario: All steps passing means the scenario passes # cucumber-tck\core.feature:16
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
When I add 4 and 5
Then the result is 9
"""
And the step "I add 4 and 5" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
And the step "the result is 9" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\core.feature:24:in `When Cucumber executes the scenario'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Scenario: Failing step means the scenario fails # cucumber-tck\core.feature:27
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
When I add 4 and 5
Then the result is 9
"""
And the step "I add 4 and 5" has a failing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:28
And the step "the result is 9" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\core.feature:35:in `When Cucumber executes the scenario'
Then the scenario fails # cucumber-tck/step_definitions/cucumber_stepdefs.rb:118
And the step "the result is 9" is skipped # cucumber-tck/step_definitions/cucumber_stepdefs.rb:142

Scenario: Pending step means the scenario is pending # cucumber-tck\core.feature:39
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
When I add 4 and 5
Then the result is 9
"""
And the step "I add 4 and 5" has a pending mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:24
And the step "the result is 9" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\core.feature:47:in `When Cucumber executes the scenario'
Then the scenario is pending # cucumber-tck/step_definitions/cucumber_stepdefs.rb:122
And the step "the result is 9" is skipped # cucumber-tck/step_definitions/cucumber_stepdefs.rb:142

Scenario: Missing step mapping means the scenario is undefined # cucumber-tck\core.feature:51
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
When I add 4 and 5
Then the result is 9
"""
And the step "the result is 9" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\core.feature:58:in `When Cucumber executes the scenario'
Then the scenario is undefined # cucumber-tck/step_definitions/cucumber_stepdefs.rb:126
And the step "the result is 9" is skipped # cucumber-tck/step_definitions/cucumber_stepdefs.rb:142

Scenario: Feature headers # cucumber-tck\core.feature:62
Given the following feature: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:12
"""
Feature: a feature
In order to get results
As a user
I want to do something
"""
When Cucumber runs the feature # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\core.feature:70:in `When Cucumber runs the feature'
Then the feature passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:146

Scenario: Simple flat steps # cucumber-tck\core.feature:73
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator computes PI
Then the calculator returns PI
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:80:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Scenario: Given, When, Then, And and But steps # cucumber-tck\core.feature:83
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator adds up 1 and 2
And the calculator adds up 3 and 0.14159265
Then the calculator returns PI
But the calculator does not return 3
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:92:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Scenario: Failing steps # cucumber-tck\core.feature:95
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator adds up 3 and 0.14
Then the calculator returns PI
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:102:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario fails # cucumber-tck/step_definitions/cucumber_stepdefs.rb:118

Scenario: Single-parameter step # cucumber-tck\core.feature:105
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator computes PI
Then the calculator returns "3.14159265"
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:112:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Scenario: Two-parameter step # cucumber-tck\core.feature:115
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator adds up "12" and "51"
Then the calculator returns "63"
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:122:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Scenario: Two-parameter step failing # cucumber-tck\core.feature:125
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator adds up "12" and "51"
Then the calculator returns "65"
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:132:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario fails # cucumber-tck/step_definitions/cucumber_stepdefs.rb:118

Scenario: Three-parameter step # cucumber-tck\core.feature:135
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator adds up "3", "4" and "5"
Then the calculator returns "12"
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\core.feature:142:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Feature: Data Tables

Scenario: a data table interpreted as an array # cucumber-tck\data_tables.feature:3
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given the following cukes:
| Cucumis sativus | Cucumber |
| Cucumis anguria | Burr Gherkin |
"""
And the step "the following cukes:" has a passing mapping that receives a data table # cucumber-tck/step_definitions/cucumber_stepdefs.rb:36
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\data_tables.feature:11:in `When Cucumber executes the scenario'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114
And the received data table array equals the following: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:165
"""
[
[ "Cucumis sativus", "Cucumber" ],
[ "Cucumis anguria", "Burr Gherkin" ]
]
"""

Scenario: a data table can be read as an array of hashes # cucumber-tck\data_tables.feature:21
Given the following data table in a step: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:40
"""
| Latin | English |
| Cucumis sativus | Cucumber |
| Cucumis anguria | Burr Gherkin |
"""
When the data table is passed to a step mapping that converts it to key/value pairs # cucumber-tck/step_definitions/cucumber_stepdefs.rb:109
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:111:in `/^the data table is passed to a step mapping that converts it to key\/value pairs$/'
cucumber-tck\data_tables.feature:28:in `When the data table is passed to a step mapping that converts it to key/value pairs'
Then the data table is converted to the following: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:169
"""
[
{ "Latin":"Cucumis sativus", "English":"Cucumber" },
{ "Latin":"Cucumis anguria", "English":"Burr Gherkin" }
]
"""

Feature: Doc Strings

Multiline strings are handy for specifying a larger piece of
text. This is done using the DocString syntax. The text should be
offset by delimiters consisting of three double-quote marks on lines
of their own.

Scenario: Step accepting a DocString parameter # cucumber-tck\doc_strings.feature:8
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given a calculator
When the calculator adds up the following numbers:
"""
3
6
1
12
"""
Then the calculator returns "22"
"""
When Cucumber runs the scenario with steps for a calculator # cucumber-tck/step_definitions/cucumber_stepdefs.rb:65
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:68:in `/^Cucumber runs the scenario with steps for a calculator$/'
cucumber-tck\doc_strings.feature:21:in `When Cucumber runs the scenario with steps for a calculator'
Then the scenario passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:114

Feature: Failing steps
In order to do Behaviour-Driven Development
As a developer
I want to see the details about failing steps

Scenario: see exception message # cucumber-tck\failing_steps.feature:6
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
When I divide 10 by 0
Then the result is 9
"""
And the step "I divide 10 by 0" has a mapping failing with the message "Divide by 0, uh?" # cucumber-tck/step_definitions/cucumber_stepdefs.rb:32
And the step "the result is 9" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\failing_steps.feature:14:in `When Cucumber executes the scenario'
Then the failure message "Divide by 0, uh?" is output # cucumber-tck/step_definitions/cucumber_stepdefs.rb:151

Scenario: see failing scenarios # cucumber-tck\failing_steps.feature:17
Given the following feature: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:12
"""
Feature: a feature
Scenario: a passing scenario
When I add 4 and 5
Then the result is 9

Scenario: a failing scenario
When I divide 10 by 0
Then the result is 9

Scenario: another failing scenario
When I divide 10 by 0
Then the result is 9
"""
And the step "I add 4 and 5" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
And the step "I divide 10 by 0" has a mapping failing with the message "Divide by 0, uh?" # cucumber-tck/step_definitions/cucumber_stepdefs.rb:32
And the step "the result is 9" has a passing mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:20
When Cucumber runs the feature # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\failing_steps.feature:36:in `When Cucumber runs the feature'
Then the scenario called "a failing scenario" is reported as failing # cucumber-tck/step_definitions/cucumber_stepdefs.rb:130
And the scenario called "another failing scenario" is reported as failing # cucumber-tck/step_definitions/cucumber_stepdefs.rb:130
But the scenario called "a passing scenario" is not reported as failing # cucumber-tck/step_definitions/cucumber_stepdefs.rb:134

Feature: Environment Hooks

Cucumber provides a number of hooks which allow you to
configure the environment for your application. By
default hooks are run for each scenario, but you can use
tagged hooks if you want more fine grained control.

Scenario: Before and After # cucumber-tck\hooks.feature:8
Given a passing before hook # cucumber-tck\hooks.feature:9
And a passing after hook # cucumber-tck\hooks.feature:10
When Cucumber executes a scenario # cucumber-tck\hooks.feature:11
Then the before hook is fired before the scenario # cucumber-tck\hooks.feature:12
And the after hook is fired after the scenario # cucumber-tck\hooks.feature:13

Scenario: Around # cucumber-tck\hooks.feature:15
Given a passing around hook # cucumber-tck\hooks.feature:16
When Cucumber executes a scenario # cucumber-tck\hooks.feature:17
Then the around hook fires around the scenario # cucumber-tck\hooks.feature:18

Scenario: Around fires around other hooks # cucumber-tck\hooks.feature:20
Given a passing around hook # cucumber-tck\hooks.feature:21
And a passing before hook # cucumber-tck\hooks.feature:22
And a passing after hook # cucumber-tck\hooks.feature:23
When Cucumber executes a scenario # cucumber-tck\hooks.feature:24
Then the around hook is fired around the other hooks # cucumber-tck\hooks.feature:25

Scenario: Tagged hook with matching scenario tag # cucumber-tck\hooks.feature:27
Given a hook tagged with "@foo" # cucumber-tck\hooks.feature:28
When Cucumber executes a scenario tagged with "@foo" # cucumber-tck\hooks.feature:29
Then the hook is fired # cucumber-tck\hooks.feature:30

Scenario: Tagged hook without matching scenario tag # cucumber-tck\hooks.feature:32
Given a hook tagged with "@foo" # cucumber-tck\hooks.feature:33
When Cucumber executes a scenario tagged with "@bar" # cucumber-tck\hooks.feature:34
Then the hook is not fired # cucumber-tck\hooks.feature:35

Scenario: Tagged hook with untagged scenario # cucumber-tck\hooks.feature:37
Given a hook tagged with "@foo" # cucumber-tck\hooks.feature:38
When Cucumber executes a scenario with no tags # cucumber-tck\hooks.feature:39
Then the hook is not fired # cucumber-tck\hooks.feature:40

Scenario: Untagged hook with tagged scenario # cucumber-tck\hooks.feature:42
Given an untagged hook # cucumber-tck\hooks.feature:43
When Cucumber executes a scenario tagged with "@bar" # cucumber-tck\hooks.feature:44
Then the hook is fired # cucumber-tck\hooks.feature:45

Feature: Internationalization (I18n)

Feature: JSON formatter

Feature: Pretty formatter

Feature: Rake task (TODO: Move to cucumber-ruby)

Feature: RSpec (TODO: Move to cucumber-ruby)

Feature: Test::Unit (TODO: Move to cucumber-ruby)

Feature: Scenario Outlines and Examples

Feature: Stats collector

Feature: Step argument transforms

Feature: Tags

Feature: Undefined steps
In order to do Behaviour-Driven Development
As a developer
I want to see the details about undefined steps

Scenario: step definition snippet suggestion # cucumber-tck\undefined_steps.feature:6
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given I am a veggie
When I eat meat
Then I get sick
"""
And the step "I am a veggie" has no mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:16
And the step "I eat meat" has no mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:16
And the step "I get sick" has no mapping # cucumber-tck/step_definitions/cucumber_stepdefs.rb:16
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\undefined_steps.feature:16:in `When Cucumber executes the scenario'
Then a "Given" step definition snippet for /^I am a veggie$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "When" step definition snippet for /^I eat meat$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I get sick$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173

Scenario: repeating steps (And, But) # cucumber-tck\undefined_steps.feature:21
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given I am a veggie
And I love food
When I eat gherkins
And I eat cucumbers
Then I feel satiated
And I feel energized
But I have nothing left to eat
"""
And the steps have no mappings # cucumber-tck/step_definitions/cucumber_stepdefs.rb:16
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\undefined_steps.feature:33:in `When Cucumber executes the scenario'
Then a "Given" step definition snippet for /^I am a veggie$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Given" step definition snippet for /^I love food$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "When" step definition snippet for /^I eat gherkins$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "When" step definition snippet for /^I eat cucumbers$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I feel satiated$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I feel energized$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I have nothing left to eat$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173

Scenario: star steps (*) # cucumber-tck\undefined_steps.feature:42
All keywords are aliased to * in all i18n translations of Gherkin. The
purpose is to allow a bullet-list style of steps. Just like with the And
and But keywords, the previous keyword should be used for step definitions.
If there are no previous steps, use Given.
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
* I am a veggie
* I love food
When I eat gherkins
* I eat cucumbers
Then I feel satiated
* I feel energized
* I have nothing left to eat
"""
And the steps have no mappings # cucumber-tck/step_definitions/cucumber_stepdefs.rb:16
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\undefined_steps.feature:59:in `When Cucumber executes the scenario'
Then a "Given" step definition snippet for /^I am a veggie$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Given" step definition snippet for /^I love food$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "When" step definition snippet for /^I eat gherkins$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "When" step definition snippet for /^I eat cucumbers$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I feel satiated$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I feel energized$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173
And a "Then" step definition snippet for /^I have nothing left to eat$/ is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:173

Scenario: step with doc strings # cucumber-tck\undefined_steps.feature:68
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given the following Wikipedia excerpt:
"""
The cucumber (Cucumis sativus) is a widely cultivated plant
in the gourd family Cucurbitaceae, which includes squash,
and in the same genus as the muskmelon.
"""
"""
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\undefined_steps.feature:78:in `When Cucumber executes the scenario'
Then a "Given" step definition snippet for /^the following Wikipedia excerpt:$/ with a doc string is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:181

Scenario: step with data tables: # cucumber-tck\undefined_steps.feature:81
Given a scenario with: # cucumber-tck/step_definitions/cucumber_stepdefs.rb:8
"""
Given the following cucumbers:
| variety | score |
| persian | 3 |
| c-thru-cumber | 1 |
| lebanese | 4 |
| kekiri | 5 |
"""
When Cucumber executes the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:61
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:62:in `/^Cucumber (?:runs|executes) the (?:feature|scenario)$/'
cucumber-tck\undefined_steps.feature:91:in `When Cucumber executes the scenario'
Then a "Given" step definition snippet for /^the following cucumbers:$/ with a data table is suggested # cucumber-tck/step_definitions/cucumber_stepdefs.rb:185

Feature: Wire protocol

Feature: World (or Context)

Scenario: access World variable # cucumber-tck\world.feature:3
Given a World variable initialized to 1 # cucumber-tck/step_definitions/cucumber_stepdefs.rb:49
When Cucumber executes a scenario that increments the World variable by 1 # cucumber-tck/step_definitions/cucumber_stepdefs.rb:71
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:80:in `/^Cucumber executes a scenario that increments the World variable by (\d+)$/'
cucumber-tck\world.feature:5:in `When Cucumber executes a scenario that increments the World variable by 1'
Then the feature passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:146
And the World variable should have contained 2 at the end of the scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:156

Scenario: different World instances between scenarios # cucumber-tck\world.feature:9
Given a World variable initialized to 1 # cucumber-tck/step_definitions/cucumber_stepdefs.rb:49
When Cucumber executes two scenarios that increment the World variable by 1 # cucumber-tck/step_definitions/cucumber_stepdefs.rb:83
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:96:in `/^Cucumber executes two scenarios that increment the World variable by (\d+)$/'
cucumber-tck\world.feature:11:in `When Cucumber executes two scenarios that increment the World variable by 1'
Then the feature passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:146
And the World variable should have contained 2 at the end of the first scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:156
And the World variable should have contained 2 at the end of the second scenario # cucumber-tck/step_definitions/cucumber_stepdefs.rb:156

Scenario: call function from World # cucumber-tck\world.feature:16
Given a World function # cucumber-tck/step_definitions/cucumber_stepdefs.rb:53
When Cucumber executes a scenario that calls the World function # cucumber-tck/step_definitions/cucumber_stepdefs.rb:99
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:106:in `/^Cucumber executes a scenario that calls the World function$/'
cucumber-tck\world.feature:18:in `When Cucumber executes a scenario that calls the World function'
Then the feature passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:146
And the World function should have been called # cucumber-tck/step_definitions/cucumber_stepdefs.rb:161

Scenario: replace World constructor # cucumber-tck\world.feature:22
Given a custom World constructor # cucumber-tck/step_definitions/cucumber_stepdefs.rb:57
And a World function # cucumber-tck/step_definitions/cucumber_stepdefs.rb:53
When Cucumber executes a scenario that calls the World function # cucumber-tck/step_definitions/cucumber_stepdefs.rb:99
The system cannot find the file specified. (2) (ChildProcess::LaunchError)
./java/src/test/resources/cucumber-tck/cucumber_java_mappings.rb:21:in `run_feature'
./cucumber-tck/step_definitions/cucumber_stepdefs.rb:106:in `/^Cucumber executes a scenario that calls the World function$/'
cucumber-tck\world.feature:25:in `When Cucumber executes a scenario that calls the World function'
Then the feature passes # cucumber-tck/step_definitions/cucumber_stepdefs.rb:146
And the World function should have been called # cucumber-tck/step_definitions/cucumber_stepdefs.rb:161

Failing Scenarios:
cucumber cucumber-tck\comments.feature:5 # Scenario: Comments in a feature file
cucumber cucumber-tck\core.feature:16 # Scenario: All steps passing means the scenario passes
cucumber cucumber-tck\core.feature:27 # Scenario: Failing step means the scenario fails
cucumber cucumber-tck\core.feature:39 # Scenario: Pending step means the scenario is pending
cucumber cucumber-tck\core.feature:51 # Scenario: Missing step mapping means the scenario is undefined
cucumber cucumber-tck\core.feature:62 # Scenario: Feature headers
cucumber cucumber-tck\core.feature:73 # Scenario: Simple flat steps
cucumber cucumber-tck\core.feature:83 # Scenario: Given, When, Then, And and But steps
cucumber cucumber-tck\core.feature:95 # Scenario: Failing steps
cucumber cucumber-tck\core.feature:105 # Scenario: Single-parameter step
cucumber cucumber-tck\core.feature:115 # Scenario: Two-parameter step
cucumber cucumber-tck\core.feature:125 # Scenario: Two-parameter step failing
cucumber cucumber-tck\core.feature:135 # Scenario: Three-parameter step
cucumber cucumber-tck\data_tables.feature:3 # Scenario: a data table interpreted as an array
cucumber cucumber-tck\data_tables.feature:21 # Scenario: a data table can be read as an array of hashes
cucumber cucumber-tck\doc_strings.feature:8 # Scenario: Step accepting a DocString parameter
cucumber cucumber-tck\failing_steps.feature:6 # Scenario: see exception message
cucumber cucumber-tck\failing_steps.feature:17 # Scenario: see failing scenarios
cucumber cucumber-tck\undefined_steps.feature:6 # Scenario: step definition snippet suggestion
cucumber cucumber-tck\undefined_steps.feature:21 # Scenario: repeating steps (And, But)
cucumber cucumber-tck\undefined_steps.feature:42 # Scenario: star steps (*)
All keywords are aliased to * in all i18n translations of Gherkin. The
purpose is to allow a bullet-list style of steps. Just like with the And
and But keywords, the previous keyword should be used for step definitions.
If there are no previous steps, use Given.
cucumber cucumber-tck\undefined_steps.feature:68 # Scenario: step with doc strings
cucumber cucumber-tck\undefined_steps.feature:81 # Scenario: step with data tables:
cucumber cucumber-tck\world.feature:3 # Scenario: access World variable
cucumber cucumber-tck\world.feature:9 # Scenario: different World instances between scenarios
cucumber cucumber-tck\world.feature:16 # Scenario: call function from World
cucumber cucumber-tck\world.feature:22 # Scenario: replace World constructor

34 scenarios (27 failed, 7 undefined)
150 steps (27 failed, 52 skipped, 25 undefined, 46 passed)
0m1.997s

You can implement step definitions for undefined steps with these snippets:

Given /^a passing before hook$/ do
pending # express the regexp above with the code you wish you had
end

Given /^a passing after hook$/ do
pending # express the regexp above with the code you wish you had
end

When /^Cucumber executes a scenario$/ do
pending # express the regexp above with the code you wish you had
end

Then /^the before hook is fired before the scenario$/ do
pending # express the regexp above with the code you wish you had
end

Then /^the after hook is fired after the scenario$/ do
pending # express the regexp above with the code you wish you had
end

Given /^a passing around hook$/ do
pending # express the regexp above with the code you wish you had
end

Then /^the around hook fires around the scenario$/ do
pending # express the regexp above with the code you wish you had
end

Then /^the around hook is fired around the other hooks$/ do
pending # express the regexp above with the code you wish you had
end

Given /^a hook tagged with "([^"]*)"$/ do |arg1|
pending # express the regexp above with the code you wish you had
end

When /^Cucumber executes a scenario tagged with "([^"]*)"$/ do |arg1|
pending # express the regexp above with the code you wish you had
end

Then /^the hook is fired$/ do
pending # express the regexp above with the code you wish you had
end

Then /^the hook is not fired$/ do
pending # express the regexp above with the code you wish you had
end

When /^Cucumber executes a scenario with no tags$/ do
pending # express the regexp above with the code you wish you had
end

Given /^an untagged hook$/ do
pending # express the regexp above with the code you wish you had
end