Provided by: libtest-bdd-cucumber-perl_0.83-1_all
NAME
Test::BDD::Cucumber::Manual::Integration - Test suite integration options
VERSION
version 0.83
DESCRIPTION
How to use Test::BDD::Cucumber in your test suite
OVERVIEW
Test::BDD::Cucumber offers two options to integrate your tests with your test framework: 1. Integration with C<prove> which will run your .feature files as it does .t files 2. Creation of a .t file which fires off your selected .feature files (Test::Builder integration) The benefits from using the former approach is that all "prove"'s advanced features like parallel testing, randomized order, "--state"ful runs, JUnit output, etc., are available out of the box.
prove integration
With Test::BDD::Cucumber installed in the Perl search path (PERL5LIB) comes the possibility to run the .feature files with a "prove" command directly, by specifying $ prove -r --source Feature --ext=.feature --feature-option tags=~@wip t/ This command registers a "prove" plugin named "Feature" associated with the ".feature" extension. Additionally, it passes a tag filter to exclude @wip tagged features and scenarios from being run. When executed, the command searches the "t/" directory recursively for files with the ".feature" extension. For each directory holding at least one ".feature" file, the step files are loaded from the "step_definitions/" subdirectory. The command above will find and run only ".feature" files. When you want to run your regular ".t" files as well as Test::BDD::Cucumber's ".feature" files, run the following command: $ prove -r --source Perl --ext=.t --source Feature --ext=.feature --feature-option tags=~@wip t/
Test::Builder integration -- a documented example
The code below needs to be stored in a ".t" file in the "t/" or "xt/" directory. When done that way, the tests are integrated into "make test" as generated from "make test" after "perl Makefile.PL". #!perl use strict; use warnings; # 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::TAP; # 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. TAP harness prints TAP my $harness = Test::BDD::Cucumber::Harness::TAP->new({}); # For each feature found, execute it, using the Harness to print results $executor->execute( $_, $harness ) for @features; # Shutdown gracefully $harness->shutdown(); perl v5.36.0 2022-11-Test::BDD::Cucumber::Manual::Integration(3pm)