Skip to content

Adds Contexts and Helper to easily set-up behat tests in your sulu application

License

Notifications You must be signed in to change notification settings

elbformat/sulu-behat-bundle

Repository files navigation

sulu-behat-bundle

Adds Contexts and Helper to easily set-up behat tests in your sulu application. It makes use of the symfony-behat-bundle.

Installation

  1. Add the bundle via composer
composer require elbformat/sulu-behat-bundle
  1. Activate bundles in config/bundles.php
Elbformat\SymfonyBehatBundle\ElbformatSymfonyBehatBundle::class => ['test' => true],
Elbformat\SuluBehatBundle\ElbformatSuluBehatBundle::class => ['test' => true],
  1. Configure behat Extensions

Add the extension to your behat.yml. With the context parameter you can decide if the sulu kernel for this profile is running in website or admin (default) context. It's recommended to use tags to sort features into suites. Also make sure the symfony extension is enabled and configured.

NOTE: The FriendsOfBehat\SymfonyExtension must be placed before the SuluExtension.

You can then add Contexts as you like/need.

default:
  suites:
    default:
      filters:
        tags: '~@admin'
      contexts:
        - Elbformat\SymfonyBehatBundle\Context\CommandContext:
        - Elbformat\SymfonyBehatBundle\Context\LoggingContext:
        - Elbformat\SuluBehatBundle\Context\BrowserContext:
        - Elbformat\SuluBehatBundle\Context\DateContext:
        - Elbformat\SuluBehatBundle\Context\SuluPageContext:
        - Elbformat\SuluBehatBundle\Context\SuluSnippetContext:
        - Elbformat\SuluBehatBundle\Context\SuluMediaContext:
        # Only enable, when you have the according bundle installed
        #- Elbformat\SuluBehatBundle\Context\SuluArticleContext:
        #- Elbformat\SuluBehatBundle\Context\SuluFormContext:
  extensions:
    FriendsOfBehat\SymfonyExtension: ~
    Elbformat\SuluBehatBundle\SuluExtension:
      context: website
admin:
  suites:
    default:
      filters:
        tags: '@admin'
  extensions:
    FriendsOfBehat\SymfonyExtension:
      bootstrap: 'tests/bootstrap.php'
    Elbformat\SuluBehatBundle\SuluExtension:
      context: admin

Run tests

Make sure you have a database configured for the test environment. It's recommended to have an extra database configured for tests in .env.test, to not accidentally delete real contents. After configuration you should initialise it once, before running any test against it.

bin/console -e test sulu:build prod

You can then run the tests in default oder admin profile.

vendor/bin/behat
vendor/bin/behat --profile admin

Examples

First you should take a look at the symfony examples. More sulu specific examples can be found in features/ folder.

Recommended bundles

There are contexts, that can ony be enabled when the according bundles are installed.

What's next?

Possible enhancements for the next release could be

  • SuluCommunityContext for SuluCommunityBundle
  • More examples with more content-types