Skip to content

Instantly share code, notes, and snippets.

@josephwilk
Created October 27, 2009 21:06
Show Gist options
  • Save josephwilk/219959 to your computer and use it in GitHub Desktop.
Save josephwilk/219959 to your computer and use it in GitHub Desktop.
joseph-wilks-mac-pro:cucumber josephwilk$ bin/cucumber features/wire_protocol.feature -v --format pretty
Using the default profile...
Code:
* features/support/env.rb
Failed to load 'simplest' programming language for file features/support/env.rb.simplest: no such file to load -- cucumber/simplest_support/simplest_language
* features/support/env.rb.simplest [NOT SUPPORTED]
* features/support/fake_wire_server.rb
Features:
* features/wire_protocol.feature
Parsing feature files took 0m0.377s
Code:
Failed to load 'html' programming language for file features/html_formatter/a.html: no such file to load -- cucumber/html_support/html_language
* features/html_formatter/a.html [NOT SUPPORTED]
* features/step_definitions/cucumber_steps.rb
* features/step_definitions/extra_steps.rb
* features/step_definitions/simplest_steps.rb
* features/step_definitions/wire_steps.rb
@wire
Feature: Wire Protocol
In order to be allow Cucumber to touch my app in intimate places
As a developer on platform which doesn't support Ruby
I want a low-level protocol which Cucumber can use to run steps within my app
#
# Cucumber's wire protocol is an implementation of Cucumber's internal 'programming language' abstraction,
# and allows step definitions to be implemented and invoked on any platform.
#
# Communication is over a TCP socket, which Cucumber connects to when it finds a definition file with the
# .wire extension in the step_definitions folder (or other load path).
#
# There are currently two messages which Cucumber sends over the wire:
#
# * step_matches : this is used to find out whether the wire end has a definition for a given step
# * invoke : this is used to ask for a step definition to be invoked
#
# Message packets are formatted as JSON-encoded strings, with a newline character signalling the end of a
# packet. These messages are described below, with examples.
#
Background: # features/wire_protocol.feature:23
Given a standard Cucumber project directory structure # features/step_definitions/cucumber_steps.rb:7
And a file named "features/wired.feature" with: # features/step_definitions/cucumber_steps.rb:26
"""
Scenario: Wired
Given we're all wired
"""
And a file named "features/step_definitions/some_remote_place.wire" with: # features/step_definitions/cucumber_steps.rb:26
"""
host: localhost
port: 98989
"""
#
# step_matches
#
# When the features have been parsed, Cucumber will send a step_matches message to ask the wire end
# if it can match a step name. This happens for each of the steps in each of the features.
# The wire end replies with a step_match array, containing the IDs of any step definitions that could
# be invoked for the given step name.
Scenario: Dry run finds no step match # features/wire_protocol.feature:47
Given there is a wire server running on port 98989 which understands the following protocol: # features/step_definitions/wire_steps.rb:1
| request | response |
| ["step_matches",{"name_to_match":"we're all wired"}] | ["step_matches",[]] |
./features/support/fake_wire_server.rb:10:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
from ./features/support/fake_wire_server.rb:10:in `open'
from ./features/support/fake_wire_server.rb:10:in `run'
from ./features/step_definitions/wire_steps.rb:6
from ./features/step_definitions/wire_steps.rb:4:in `fork'
from ./features/step_definitions/wire_steps.rb:4
from ./features/support/env.rb:84:in `chdir'
from ./features/support/env.rb:84:in `in_current_dir'
from ./features/step_definitions/wire_steps.rb:3
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/rb_support/rb_step_definition.rb:55:in `invoke'
from ./bin/../lib/cucumber/step_match.rb:23:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:58:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
from ./bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
from ./bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
from ./bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
from ./bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
from ./bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
from ./bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/feature.rb:25:in `accept'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `each'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
from ./bin/../lib/cucumber/ast/features.rb:29:in `accept'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:28:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
from ./bin/../lib/cucumber/cli/main.rb:55:in `execute!'
from ./bin/../lib/cucumber/cli/main.rb:24:in `execute'
from bin/cucumber:9
When I run cucumber --dry-run -f progress features # features/step_definitions/cucumber_steps.rb:50
And it should pass with # features/step_definitions/cucumber_steps.rb:68
"""
U
1 scenario (1 undefined)
1 step (1 undefined)
"""
Failed with exit status 1
STDOUT:
STDERR:
getaddrinfo: nodename nor servname provided, or not known (SocketError)
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:8:in `step_matches'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:21:in `step_matches'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:21:in `map'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:21:in `step_matches'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:148:in `step_match'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:147:in `map'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:147:in `step_match'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_invocation.rb:81:in `find_step_match!'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_invocation.rb:54:in `invoke'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9
(RuntimeError)
./features/step_definitions/cucumber_steps.rb:63:in `/^it should (fail|pass)$/'
features/wire_protocol.feature:52:in `And it should pass with'
# When a step match is returned, it contains an identifier for the step definition to be used
# later when referring to this step definition again if it needs to be invoked. The identifier
# can take any form (as long as it's within a string) and is simply used for the wire end's own
# reference.
# The step match also contains any argument values as parsed out by the wire end's own regular
# expression or other argument matching process.
Scenario: Dry run finds a step match # features/wire_protocol.feature:67
Given there is a wire server running on port 98989 which understands the following protocol: # features/step_definitions/wire_steps.rb:1
| request | response |
| ["step_matches",{"name_to_match":"we're all wired"}] |./features/support/fake_wire_server.rb:10:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
["step_matches",[{"id":"1", "args":[]}]] | from ./features/support/fake_wire_server.rb:10:in `open'
from ./features/support/fake_wire_server.rb:10:in `run'
from ./features/step_definitions/wire_steps.rb:6
from ./features/step_definitions/wire_steps.rb:4:in `fork'
from ./features/step_definitions/wire_steps.rb:4
from ./features/support/env.rb:84:in `chdir'
from ./features/support/env.rb:84:in `in_current_dir'
from ./features/step_definitions/wire_steps.rb:3
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/rb_support/rb_step_definition.rb:55:in `invoke'
from ./bin/../lib/cucumber/step_match.rb:23:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:58:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
from ./bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
from ./bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
from ./bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
from ./bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
from ./bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
from ./bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/feature.rb:25:in `accept'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `each'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
from ./bin/../lib/cucumber/ast/features.rb:29:in `accept'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:28:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
from ./bin/../lib/cucumber/cli/main.rb:55:in `execute!'
from ./bin/../lib/cucumber/cli/main.rb:24:in `execute'
from bin/cucumber:9
When I run cucumber --dry-run -f progress features # features/step_definitions/cucumber_steps.rb:50
And it should pass with # features/step_definitions/cucumber_steps.rb:68
"""
-
1 scenario (1 skipped)
1 step (1 skipped)
"""
Failed with exit status 1
STDOUT:
STDERR:
getaddrinfo: nodename nor servname provided, or not known (SocketError)
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:8:in `step_matches'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:21:in `step_matches'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:21:in `map'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:21:in `step_matches'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:148:in `step_match'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:147:in `map'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:147:in `step_match'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_invocation.rb:81:in `find_step_match!'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_invocation.rb:54:in `invoke'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9
(RuntimeError)
./features/step_definitions/cucumber_steps.rb:63:in `/^it should (fail|pass)$/'
features/wire_protocol.feature:72:in `And it should pass with'
#
# invoke
#
# Assuming a step_match was returned for a given step name, when it's time to invoke that
# step definition, Cucumber will send an invoke message.
# The message contains the ID of the step definition, as returned by the wire end from the
# step_matches call, along with the arguments that were parsed from the step name during the
# same step_matches call.
# The wire end will reply with either a step_failed or a success message.
Scenario: Invoke a step definition which passes # features/wire_protocol.feature:92
Given there is a wire server running on port 98989 which understands the following protocol: # features/step_definitions/wire_steps.rb:1
| request | response |
| ["step_matches",{"name_to_match":"we're all wired"}] | ["step_matches",[{"id":"1", "args":[]}]] |
./features/support/fake_wire_server.rb:10:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
from ./features/support/fake_wire_server.rb:10:in `open'
from ./features/support/fake_wire_server.rb:10:in `run'
from ./features/step_definitions/wire_steps.rb:6
from ./features/step_definitions/wire_steps.rb:4:in `fork'
from ./features/step_definitions/wire_steps.rb:4
from ./features/support/env.rb:84:in `chdir'
from ./features/support/env.rb:84:in `in_current_dir'
from ./features/step_definitions/wire_steps.rb:3
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/rb_support/rb_step_definition.rb:55:in `invoke'
from ./bin/../lib/cucumber/step_match.rb:23:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:58:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
from ./bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
| ["begin_scenario",null] | from ./bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
from ./bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
from ./bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
from ./bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
from ./bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
from ./bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/feature.rb:25:in `accept'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `each'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
from ./bin/../lib/cucumber/ast/features.rb:29:in `accept'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:28:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
from ./bin/../lib/cucumber/cli/main.rb:55:in `execute!'
from ./bin/../lib/cucumber/cli/main.rb:24:in `execute'
from bin/cucumber:9
["success",null] |
| ["invoke",{"id":"1","args":[]}] | ["success",null] |
| ["end_scenario",null] | ["success",null] |
When I run cucumber -f progress --backtrace features # features/step_definitions/cucumber_steps.rb:50
And it should pass with # features/step_definitions/cucumber_steps.rb:68
"""
.
1 scenario (1 passed)
1 step (1 passed)
"""
Failed with exit status 1
STDOUT:
STDERR:
getaddrinfo: nodename nor servname provided, or not known (SocketError)
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'
/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9
(RuntimeError)
./features/step_definitions/cucumber_steps.rb:63:in `/^it should (fail|pass)$/'
features/wire_protocol.feature:100:in `And it should pass with'
# When a step definition fails, it can return details of the exception in the reply to invoke. These
# will then be passed by Cucumber to the formatters for display to the user.
#
Scenario: Invoke a step definition which fails # features/wire_protocol.feature:112
Given there is a wire server running on port 98989 which understands the following protocol: # features/step_definitions/wire_steps.rb:1
| request | response |
| ["step_matches",{"name_to_match":"we're all wired"}] | ["step_matches",[{"id":"1", "args":[]}]] |
./features/support/fake_wire_server.rb:10:in `initialize' | ["begin_scenario",null] |: getaddrinfo: nodename nor servname provided, or not known (SocketError)
from ./features/support/fake_wire_server.rb:10:in `open'
from ./features/support/fake_wire_server.rb:10:in `run'
from ./features/step_definitions/wire_steps.rb:6
from ./features/step_definitions/wire_steps.rb:4:in `fork'
from ./features/step_definitions/wire_steps.rb:4
from ./features/support/env.rb:84:in `chdir'
from ./features/support/env.rb:84:in `in_current_dir'
from ./features/step_definitions/wire_steps.rb:3
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/rb_support/rb_step_definition.rb:55:in `invoke'
from ./bin/../lib/cucumber/step_match.rb:23:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:58:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
from ./bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
from ./bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
from ./bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
from ./bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
["success",null] | from ./bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
from ./bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/feature.rb:25:in `accept'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `each'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
from ./bin/../lib/cucumber/ast/features.rb:29:in `accept'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:28:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
from ./bin/../lib/cucumber/cli/main.rb:55:in `execute!'
from ./bin/../lib/cucumber/cli/main.rb:24:in `execute'
from bin/cucumber:9
| ["invoke",{"id":"1","args":[]}] | ["step_failed",{"message":"The wires are down"}] |
| ["end_scenario",null] | ["success",null] |
When I run cucumber -f progress features # features/step_definitions/cucumber_steps.rb:50
Then STDERR should be empty # features/step_definitions/cucumber_steps.rb:121
expected: "",
got: "getaddrinfo: nodename nor servname provided, or not known (SocketError)\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9\n" (using ==)
Diff:
@@ -1 +1,42 @@
+getaddrinfo: nodename nor servname provided, or not known (SocketError)
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
+/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9
(Spec::Expectations::ExpectationNotMetError)
./features/step_definitions/cucumber_steps.rb:122:in `/^STDERR should be empty$/'
features/wire_protocol.feature:120:in `Then STDERR should be empty'
And it should fail with # features/step_definitions/cucumber_steps.rb:68
"""
F
(::) failed steps (::)
The wires are down (Cucumber::WireSupport::WireException)
features/wired.feature:2:in `Given we're all wired'
Failing Scenarios:
cucumber features/wired.feature:1 # Scenario: Wired
1 scenario (1 failed)
1 step (1 failed)
"""
# Imagine we have a step definition like:
#
# Given /we're all (.*)/ do |what_we_are|
# end
#
# When this step definition matches the step name in our feature, the word 'wired' will be parsed as an
# argument.
#
# Cucumber expects this StepArgument to be returned in the StepMatch. The keys have the following meanings:
# * val : the value of the string captured for that argument from the step name passed in step_matches
# * pos : the position within the step name that the argument was matched (used for formatter highlighting)
#
Scenario: Invoke a step definition which takes arguments (and passes) # features/wire_protocol.feature:150
Given there is a wire server running on port 98989 which understands the following protocol: # features/step_definitions/wire_steps.rb:1
| request | response |
| ["step_matches",{"name_to_match":"we're all wired"}] | ["step_matches",[{"id":"1", "args":[{"val":"wired", "pos":10}]}]] |./features/support/fake_wire_server.rb:10:in `initialize'
: getaddrinfo: nodename nor servname provided, or not known (SocketError)
from ./features/support/fake_wire_server.rb:10:in `open'
from ./features/support/fake_wire_server.rb:10:in `run'
from ./features/step_definitions/wire_steps.rb:6
from ./features/step_definitions/wire_steps.rb:4:in `fork'
from ./features/step_definitions/wire_steps.rb:4
from ./features/support/env.rb:84:in `chdir'
from ./features/support/env.rb:84:in `in_current_dir'
from ./features/step_definitions/wire_steps.rb:3
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/rb_support/rb_step_definition.rb:55:in `invoke'
from ./bin/../lib/cucumber/step_match.rb:23:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:58:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
from ./bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
from ./bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
from ./bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
from ./bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
from ./bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
from ./bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/feature.rb:25:in `accept'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `each'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
| ["begin_scenario",null] | from ./bin/../lib/cucumber/ast/features.rb:29:in `accept'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:28:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
from ./bin/../lib/cucumber/cli/main.rb:55:in `execute!'
from ./bin/../lib/cucumber/cli/main.rb:24:in `execute'
from bin/cucumber:9
["success",null] |
| ["invoke",{"id":"1","args":["wired"]}] | ["success",null] |
| ["end_scenario",null] | ["success",null] |
When I run cucumber -f progress --backtrace features # features/step_definitions/cucumber_steps.rb:50
Then STDERR should be empty # features/step_definitions/cucumber_steps.rb:121
expected: "",
got: "getaddrinfo: nodename nor servname provided, or not known (SocketError)\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9\n" (using ==)
Diff:
@@ -1 +1,42 @@
+getaddrinfo: nodename nor servname provided, or not known (SocketError)
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
+/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'
+/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9
(Spec::Expectations::ExpectationNotMetError)
./features/step_definitions/cucumber_steps.rb:122:in `/^STDERR should be empty$/'
features/wire_protocol.feature:158:in `Then STDERR should be empty'
And it should pass with # features/step_definitions/cucumber_steps.rb:68
"""
.
1 scenario (1 passed)
1 step (1 passed)
"""
Scenario: Unexpected response # features/wire_protocol.feature:169
Given there is a wire server running on port 98989 which understands the following protocol: # features/step_definitions/wire_steps.rb:1
| request | response |
| ["begin_scenario",null] | ["yikes"] |
./features/support/fake_wire_server.rb:10:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
from ./features/support/fake_wire_server.rb:10:in `open'
from ./features/support/fake_wire_server.rb:10:in `run'
from ./features/step_definitions/wire_steps.rb:6
from ./features/step_definitions/wire_steps.rb:4:in `fork'
from ./features/step_definitions/wire_steps.rb:4
from ./features/support/env.rb:84:in `chdir'
from ./features/support/env.rb:84:in `in_current_dir'
from ./features/step_definitions/wire_steps.rb:3
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:48:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:69:in `cucumber_run_with_backtrace_filtering'
from ./bin/../lib/cucumber/core_ext/instance_exec.rb:36:in `cucumber_instance_exec'
from ./bin/../lib/cucumber/rb_support/rb_step_definition.rb:55:in `invoke'
from ./bin/../lib/cucumber/step_match.rb:23:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:58:in `invoke'
from ./bin/../lib/cucumber/ast/step_invocation.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:99:in `visit_step'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
from ./bin/../lib/cucumber/ast/step_collection.rb:15:in `accept'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `each'
from ./bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:93:in `visit_steps'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
from ./bin/../lib/cucumber/ast/scenario.rb:45:in `accept'
from ./bin/../lib/cucumber/step_mother.rb:191:in `before_and_after'
from ./bin/../lib/cucumber/ast/scenario.rb:43:in `accept'
from ./bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'
from ./bin/../lib/cucumber/ast/scenario.rb:37:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
from ./bin/../lib/cucumber/ast/feature.rb:25:in `accept'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `each'
from ./bin/../lib/cucumber/ast/feature.rb:24:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
from ./bin/../lib/cucumber/ast/features.rb:29:in `accept'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:17:in `each'
from ./bin/../lib/cucumber/ast/features.rb:28:in `accept'
from ./bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'
from ./bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'
from ./bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
from ./bin/../lib/cucumber/cli/main.rb:55:in `execute!'
from ./bin/../lib/cucumber/cli/main.rb:24:in `execute'
from bin/cucumber:9
When I run cucumber -f progress features # features/step_definitions/cucumber_steps.rb:50
Then STDERR should match # features/step_definitions/cucumber_steps.rb:109
"""
undefined method `handle_yikes'
"""
expected: /undefined method `handle_yikes'/,
got: "getaddrinfo: nodename nor servname provided, or not known (SocketError)\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9\n" (using =~)
Diff:
@@ -1,2 +1,2 @@
-/undefined method `handle_yikes'/
+"getaddrinfo: nodename nor servname provided, or not known (SocketError)\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `initialize'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `new'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:38:in `socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/opt/local/lib/ruby/1.8/timeout.rb:62:in `timeout'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:29:in `send_data_to_socket'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/connection.rb:18:in `call_remote'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/request_handler.rb:11:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:55:in `make_request'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_protocol.rb:35:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/wire_support/wire_language.rb:34:in `begin_scenario'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:209:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:208:in `before'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/step_mother.rb:190:in `before_and_after'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:43:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:98:in `with_visitor'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/scenario.rb:37:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:51:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:25:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/feature.rb:24:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:20:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:29:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:17:in `each'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/features.rb:28:in `accept'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:14:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:158:in `broadcast'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/ast/tree_walker.rb:13:in `visit_features'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:55:in `execute!'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/../lib/cucumber/cli/main.rb:24:in `execute'\n/Users/josephwilk/Workspace/ruby/josephwilk/cucumber/bin/cucumber:9\n"
(Spec::Expectations::ExpectationNotMetError)
./features/step_definitions/cucumber_steps.rb:110:in `/^STDERR should match$/'
features/wire_protocol.feature:174:in `Then STDERR should match'
Failing Scenarios:
cucumber features/wire_protocol.feature:47 # Scenario: Dry run finds no step match
cucumber features/wire_protocol.feature:67 # Scenario: Dry run finds a step match
cucumber features/wire_protocol.feature:92 # Scenario: Invoke a step definition which passes
cucumber features/wire_protocol.feature:112 # Scenario: Invoke a step definition which fails
cucumber features/wire_protocol.feature:150 # Scenario: Invoke a step definition which takes arguments (and passes)
cucumber features/wire_protocol.feature:169 # Scenario: Unexpected response
6 scenarios (6 failed)
38 steps (6 failed, 2 skipped, 30 passed)
0m4.752s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment