bex / behat-test-runner
Component to help in self testing Behat extension development
Installs: 1 549
Dependents: 13
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 1
Open Issues: 1
Requires
- php: >=5.4
- behat/behat: ^3.0.0
- symfony/process: ^2.7.0
Requires (Dev)
- phpspec/phpspec: 2.4.0-alpha2
This package is auto-updated.
Last update: 2024-12-03 15:31:12 UTC
README
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