test::bdd::cucumber::manual::integration(3pm) [debian man page]
Test::BDD::Cucumber::Manual::Integration(3pm) User Contributed Perl Documentation Test::BDD::Cucumber::Manual::Integration(3pm)NAME
Test::BDD::Cucumber::Manual::Integration - Integrating with Test::Builder
VERSION
version 0.11
DESCRIPTION
How to use Test::BDD::Cucumber in your test suite
OVERVIEW
You may well want your Cucumber tests to be executed as part of your standard test-suite. Luckily, this is SUPER easy.
WELL-COMMENTED EXAMPLE
#!perl
use strict;
use warnings;
use FindBin::libs;
# This will find step definitions and feature files in the directory you point
# it at below
use Test::BDD::Cucumber::Loader;
# This harness prints out nice TAP
use Test::BDD::Cucumber::Harness::TestBuilder;
# Load a directory with Cucumber files in it. It will recursively execute any
# file matching .*_steps.pl as a Step file, and .*.feature as a feature file.
# The features are returned in @features, and the executor is created with the
# step definitions loaded.
my ( $executor, @features ) = Test::BDD::Cucumber::Loader->load(
't/cucumber_core_features/' );
# Create a Harness to execute against. TestBuilder harness prints TAP
my $harness = Test::BDD::Cucumber::Harness::TestBuilder->new({});
# For each feature found, execute it, using the Harness to print results
$executor->execute( $_, $harness ) for @features;
done_testing;
perl v5.14.2 2012-05-20 Test::BDD::Cucumber::Manual::Integration(3pm)
Check Out this Related Man Page
Test::BDD::Cucumber::Executor(3pm) User Contributed Perl Documentation Test::BDD::Cucumber::Executor(3pm)NAME
Test::BDD::Cucumber::Executor - Run through Feature and Harness objects
VERSION
version 0.11
DESCRIPTION
The Executor runs through Features, matching up the Step Lines with Step Definitions, and reporting on progress through the passed-in
harness.
METHODS
steps
add_steps
The attributes "steps" is a hashref of arrayrefs, storing steps by their Verb. "add_steps()" takes step definitions of the item list form:
(
[ Given => qr//, sub {} ],
),
and populates "steps" with them.
execute
Execute accepts a feature object, a harness object, and an optional Test::BDD::Cucumber::TagSpec object and for each scenario in the
feature which meets the tag requirements (or all of them, if you haven't specified one), runs "execute_scenario".
execute_scenario
Accepts a hashref of options, and executes each step in a scenario. Options:
"feature" - A Test::BDD::Cucumber::Model::Feature object
"feature_stash" - A hashref that should live the lifetime of feature execution
"harness" - A Test::BDD::Cucumber::Harness subclass object
"scenario" - A Test::BDD::Cucumber::Model::Scenario object
"background_obj" - An optional Test::BDD::Cucumber::Model::Scenario object representing the Background
"scenario_stash" - We'll create a new scenario stash unless you've posted one in. This is used exclusively for giving Background sections
access to the same stash as the scenario they're running before.
For each step, a Test::BDD::Cucumber::StepContext object is created, and passed to "dispatch()". Nothing is returned - everything is played
back through the Harness interface.
add_placeholders
Accepts a text string and a hashref, and replaces " <placeholders" > with the values in the hashref, returning a string.
dispatch
Accepts a Test::BDD::Cucumber::StepContext object, and searches through the steps that have been added to the executor object, executing
against the first matching one.
You can also pass in a boolean 'short-circuit' flag if the Scenario's remaining steps should be skipped.
skip_step
Accepts a step-context, a result-type, and a textual reason, exercises the Harness's step start and step_done methods, and returns a
skipped-test result.
AUTHOR
Peter Sergeant "pete@clueball.com"
LICENSE
Copyright 2011, Peter Sergeant; Licensed under the same terms as Perl
perl v5.14.2 2012-05-20 Test::BDD::Cucumber::Executor(3pm)