PHPackages                             miiimooo/behat-tools - 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. [DevOps &amp; Deployment](/categories/devops)
4. /
5. miiimooo/behat-tools

ActivePackage[DevOps &amp; Deployment](/categories/devops)

miiimooo/behat-tools
====================

Behat tools

4.4(3y ago)355.5k6[1 PRs](https://github.com/miiimooo/behat-tools/pulls)GPL-3.0PHPPHP &gt;=5.5

Since Feb 14Pushed 2y ago1 watchersCompare

[ Source](https://github.com/miiimooo/behat-tools)[ Packagist](https://packagist.org/packages/miiimooo/behat-tools)[ RSS](/packages/miiimooo-behat-tools/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (4)Versions (9)Used By (0)

behat-tools
===========

[](#behat-tools)

```
composer require miiimooo/behat-tools
```

ParagraphsContext
-----------------

[](#paragraphscontext)

Support for creating paragraph content in Drupal 8 (only)

### Enabling

[](#enabling)

**behat.yml**

```
default:
  suites:
    default:
      contexts:
        - miiimooo\BehatTools\Context\ParagraphsContext
```

Support for `@BeforeParagraphCreate` and `@AfterParagraphCreate` in your own contexts by adding the new extension in behat.yml

```
  extensions:
    miiimooo\BehatTools\MiiimoooExtension: ~
```

### Usage

[](#usage)

In your feature first define the paragraph and name it, then use the name to reference it in a field that references paragraphs:

```
Feature: Content
  @api
  Scenario: Paragraph creation through Drupal 8 API

    Given a "my_paragraph_type" paragraph named "my_arbitrary_name":
      | title             | Lorem ipsum|

    Given I am viewing a "page" content:
      | title            | Dolor sed         |
      | field_paragraphs | my_arbitrary_name |
```

DavScreenshotFailureContext
---------------------------

[](#davscreenshotfailurecontext)

The DavScreenshotFailureContext triggers on a failed stop in a Behat scenario and creates a screenshot in the configured screenshots folder.

Often in CI systems all created containers and artifacts are destroyed at the end of a CI run.

The DavScreenshotFailureContext uploads the screenshots to a WebDAV server.

**behat.yml**

```
default:
  suites:
    default:
      contexts:
        - miiimooo\BehatTools\Context\DavScreenshotFailureContext
...
      failure_path: %paths.base%/screenshots
```

### Environment

[](#environment)

- WEBDAV\_HOST
- WEBDAV\_FOLDER
- WEBDAV\_USERNAME
- WEBDAV\_PASSWORD
- DRONE\_REPO\_NAME
- DRONE\_BUILD\_NUMBER
- CI

*CI* has to be set to "drone" for the web dav upload to happen

The URI where the screenshot will be saved is constructed as:

```
WEBDAV_HOST/WEBDAV_FOLDER/DRONE_REPO_NAME-DRONE_BUILD_NUMBER-FEATURE-LINENUMBER-TIMESTAMP.(png/html)

```

JavascriptOnErrorContext
------------------------

[](#javascriptonerrorcontext)

The JavascriptOnErrorContext triggers on a failed stop in a Behat scenario and prints out any Javascript errors.

**behat.yml**

```
default:
  suites:
    default:
      contexts:
        - miiimooo\BehatTools\Context\JavascriptOnErrorContext
```

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 81% 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.

###  Release Activity

Cadence

Every ~174 days

Recently: every ~270 days

Total

8

Last Release

1432d ago

Major Versions

1.x-dev → 2.x-dev2019-02-15

2.x-dev → 3.x-dev2019-06-04

3.x-dev → 4.x-dev2019-07-03

4.2 → 5.x-dev2021-04-12

### Community

Maintainers

![](https://www.gravatar.com/avatar/a0dc4eef1810e0fda09f04149fd49e2e6c624b21d4b0f5254952615dfee018ec?d=identicon)[miiimooo](/maintainers/miiimooo)

---

Top Contributors

[![miiimooo](https://avatars.githubusercontent.com/u/1226434?v=4)](https://github.com/miiimooo "miiimooo (17 commits)")[![brooke-heaton](https://avatars.githubusercontent.com/u/19474864?v=4)](https://github.com/brooke-heaton "brooke-heaton (2 commits)")[![pookmish](https://avatars.githubusercontent.com/u/7185045?v=4)](https://github.com/pookmish "pookmish (1 commits)")[![TwoD](https://avatars.githubusercontent.com/u/451168?v=4)](https://github.com/TwoD "TwoD (1 commits)")

---

Tags

behatbehat-contextbehat-contextscidavdrone-cidrupal-8webdavjavascriptBDDContextseleniumdronescreenshotBehatcicddavDrupal 8

### Embed Badge

![Health badge](/badges/miiimooo-behat-tools/health.svg)

```
[![Health](https://phpackages.com/badges/miiimooo-behat-tools/health.svg)](https://phpackages.com/packages/miiimooo-behat-tools)
```

###  Alternatives

[soyuka/contexts

Behatch contexts

282.1M11](/packages/soyuka-contexts)[novaway/common-contexts

Novaway Behat common contexts

18187.8k3](/packages/novaway-common-contexts)[dmarynicz/behat-parallel-extension

Parallel extension for Behat

27544.3k](/packages/dmarynicz-behat-parallel-extension)[marcortola/behat-seo-contexts

Behat extension for testing some On-Page SEO factors: meta title/description, canonical, hreflang, meta robots, robots.txt, redirects, sitemap validation, HTML validation, performance...

13153.8k](/packages/marcortola-behat-seo-contexts)[macpaw/behat-messenger-context

Behat Context for testing Symfony Messenger component

16232.9k](/packages/macpaw-behat-messenger-context)

PHPackages © 2026

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