bex/behat-test-runner

This package is abandoned and no longer maintained. No replacement package was suggested.

Component to help in self testing Behat extension development

Maintainers

👁 elvetemedve

Package info

github.com/elvetemedve/behat-test-runner

pkg:composer/bex/behat-test-runner

Statistics

Installs: 1 796

Dependents: 13

Suggesters: 0

Stars: 3

Open Issues: 1

1.3.1 2020-04-07 15:12 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 48cd60ca2d3031bdea52922e8413a228969bba9b

BDDBehatTDDextension


README

👁 Build Status

Behat Test Runner is essentially a Behat context class which provides steps for testing a Behat extension. You can put together a feature file and behat.yml configuration, than the test runner will start a second Behat process to evaluate the created feature file.

Installation

Install by adding to your composer.json:

composer require --dev bex/behat-test-runner

Configuration

Include the context file in behat.yml like this:

default:
 suites:
 default:
 contexts:
 - Bex\Behat\Context\TestRunnerContext

You can configure the test web browser to be used for opening the pages, like this (optional):

default:
 suites:
 default:
 contexts:
 - Bex\Behat\Context\TestRunnerContext:
 browserCommand: %paths.base%/bin/phantomjs --webdriver=4444

You can configure the working directory like this (optional):

default:
 suites:
 default:
 contexts:
 - Bex\Behat\Context\TestRunnerContext:
 workingDirectory: path/to/your/working/dir # if not provided then a temporary working dir is autogenerated

Usage

Simply use the necessary steps from the context file to put together your feature.

An example:

Feature: Visiting a page on the website
 In order to demonstrate how to use test runner
 As a developer
 I should open a page and verify the content of it

 Scenario: Visiting the index.html page
 Given I have the file "index.html" in document root:
 """
 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="UTF-8">
 <title>Test page</title>
 </head>
 <body>
 <h1>Lorem ipsum dolor amet.</h1>
 </body>
 </html>
 """
 And I have a web server running on host "localhost" and port "8080"
 And I have the feature:
 """
 Feature: Test runner demo feature
 Scenario:
 Given I open the index page
 Then I should see the content "Lorem ipsum" on the page
 """
 And I have the context:
 """
 <?php
 use Behat\MinkExtension\Context\RawMinkContext;
 class FeatureContext extends RawMinkContext
 {
 /**
 * @Given I open the index page
 */
 function firstStep()
 {
 $this->visitPath('index.html');
 }
 /**
 * @Then I should see the content :content on the page
 */
 function secondStep($content)
 {
 $this->getMink()->assertElementContains('h1', $content);
 }
 }
 """
 When I run Behat
 Then I should not see a failing test