PHPackages                             devshop/behat-drupal-extension - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. devshop/behat-drupal-extension

ActiveBehat-extension[Testing &amp; Quality](/categories/testing)

devshop/behat-drupal-extension
==============================

Extension for Behat empowering Drupal on DevShop

235.6k↓63.6%1[1 PRs](https://github.com/opendevshop/devshop-behat-extension/pulls)PHPCI failing

Since Aug 26Pushed 3y ago1 watchersCompare

[ Source](https://github.com/opendevshop/devshop-behat-extension)[ Packagist](https://packagist.org/packages/devshop/behat-drupal-extension)[ RSS](/packages/devshop-behat-drupal-extension/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (3)Used By (0)

DevShop Drupal Behat Extension
==============================

[](#devshop-drupal-behat-extension)

This Behat extension simply extends the [Drupal Behat Extension](https://github.com/jhedstrom/drupalextension) to make it a bit more useful.

It does not require DevShop, but some features are even better when using DevShop.

New Steps
---------

[](#new-steps)

### Then I take a screenshot

[](#then-i-take-a-screenshot)

This step, when used with a Selenium server and the test has a "@javascript" tag, will save a screenshot to the active website's files folder and print a link.

### When I run "command"

[](#when-i-run-command)

This step simply runs `exec()` on any command and throws an exception if a non-zero exit code is thrown.

### I select the radio button with a label that contains the string :label

[](#i-select-the-radio-button-with-a-label-that-contains-the-string-label)

This is very helpful for radio buttons that have a long or dynamic Label. Searches for the string instead of doing an exact match.

Other Features
--------------

[](#other-features)

### Simplified setup.

[](#simplified-setup)

This plugin is now included in the [DevShop Composer Template](https://github.com/opendevshop/devshop-composer-template), which is the easiest way to get a Drupal codebase running in DevShop.

If you already have a project, you can copy the entire contents of [the `tests` folder](https://github.com/opendevshop/devshop-composer-template/tree/8.x/tests) into your project.

To start a new project, use the command:

```
composer create-project devshop/composer-template:8.x-dev --stability dev --no-interaction mynewproject

```

### Step Failure Information

[](#step-failure-information)

When any step fails, the test runner outputs the URL it was on, it saves the HTML and a screenshot to web-readable folders, and gives you a link, like so:

```
Feature: DevShop.Support Registration
  In order to use DevShop.Support
  As a customer
  I need to register a new account.

  @api @javascript
  Scenario: Pre-beta registration                                     # features/demos.feature:7
    Given I am an anonymous user                                      # Drupal\DrupalExtension\Context\DrupalContext::assertAnonymousUser()
    When I am on "home"                                               # Drupal\DrupalExtension\Context\MinkContext::visit()
    And I take a screenshot                                           # FeatureContext::iTakeAScreenshot()
      │ Screenshot: http://pr35.devshop.support/sites/pr35.devshop.support/files//screenshot0U4Ddt.png
      │
    Then I should see "Host Your Own Drupal"                          # Drupal\DrupalExtension\Context\MinkContext::assertPageContainsText()
      Element not found with xpath, //html
       (WebDriver\Exception\NoSuchElement)
    │
    │  Step Failed.
    │  Site: pr35.devshop.support
    │  Current URL: http://pr35.devshop.support/home
    │  Screenshot: http://pr35.devshop.support/sites/pr35.devshop.support/files/test_failures//IshouldseeHostYourOwnDrupalNLpp17.png
    │  Last Page Output: http://pr35.devshop.support/sites/pr35.devshop.support/files/test_failures/failure-1539455962.html
    │
    │  Watchdog Errors:
    │   ID     Date          Type      Severity  Message
    │   42785  13/Oct 14:39  page not  warning   favicon.ico
    │                        found
    │   42784  13/Oct 14:39  page not  warning   favicon.ico
    │                        found
    │   42783  13/Oct 14:39  actions   info      5 orphaned actions
    │                                            (comment_publish_action,
    │                                            comment_save_action,
```

Many more features are in the works!

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/10539fb9e887c35b626eba70c97dd9d53ba14e987d4f129b55a488664a834eca?d=identicon)[jonpugh](/maintainers/jonpugh)

---

Top Contributors

[![jonpugh](https://avatars.githubusercontent.com/u/106420?v=4)](https://github.com/jonpugh "jonpugh (23 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")

### Embed Badge

![Health badge](/badges/devshop-behat-drupal-extension/health.svg)

```
[![Health](https://phpackages.com/badges/devshop-behat-drupal-extension/health.svg)](https://phpackages.com/packages/devshop-behat-drupal-extension)
```

###  Alternatives

[dms/phpunit-arraysubset-asserts

This package provides ArraySubset and related asserts once deprecated in PHPUnit 8

14429.2M361](/packages/dms-phpunit-arraysubset-asserts)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
