Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Behat Test Runner Laravel Package

bex/behat-test-runner

View on GitHub
Deep Wiki
Context7

Behat Test Runner

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
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky