Weave 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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums