PHPackages                             mink/driver-testsuite - 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. mink/driver-testsuite

ActiveLibrary[Testing &amp; Quality](/categories/testing)

mink/driver-testsuite
=====================

Functional testsuite for Mink drivers

889.7k↓32%28[9 issues](https://github.com/minkphp/driver-testsuite/issues)[7 PRs](https://github.com/minkphp/driver-testsuite/pulls)20PHPCI failing

Since Nov 22Pushed 7mo ago3 watchersCompare

[ Source](https://github.com/minkphp/driver-testsuite)[ Packagist](https://packagist.org/packages/mink/driver-testsuite)[ RSS](/packages/mink-driver-testsuite/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (20)

Mink Driver testsuite
=====================

[](#mink-driver-testsuite)

This is the common testsuite for Mink drivers to ensure consistency among implementations.

Usage
-----

[](#usage)

The testsuite of a driver should be based as follow:

```
{
    "require": {
        "behat/mink": "^1.9"
    },

    "require-dev": {
        "mink/driver-testsuite": "dev-master",
        "phpunit/phpunit": "^8.5.22 || ^9.5.11"
    },

    "autoload-dev": {
        "psr-4": {
            "Acme\\MyDriver\\Tests\\": "tests"
        }
    }
}
```

The PHPUnit config should look like this:

```

            vendor/mink/driver-testsuite/tests

            ./tests/

            ./src

```

Then create the driver config for the testsuite:

```
// tests/Config.php

namespace Acme\MyDriver\Tests;

use Behat\Mink\Tests\Driver\AbstractConfig;

class Config extends AbstractConfig
{
    /**
     * Creates an instance of the config.
     *
     * This is the callable registered as a php variable in the phpunit.xml config file.
     * It could be outside the class but this is convenient.
     */
    public static function getInstance()
    {
        return new self();
    }

    /**
     * Creates driver instance.
     *
     * @return \Behat\Mink\Driver\DriverInterface
     */
    public function createDriver()
    {
        return new \Acme\MyDriver\MyDriver();
    }
}
```

Some other methods are available in the AbstractConfig which can be overwritten to adapt the testsuite to the needs of the driver (skipping some tests for instance).

Running tests
-------------

[](#running-tests)

Before running tests, you need to start the webserver exposing the web fixtures (unless the driver does not perform real HTTP requests). This is done using this command:

```
$ vendor/bin/mink-test-server
```

To stop the server at the end of tests, cancel the command.

> Note: this command requires Bash. If you are on Windows, use either GitBash or Cygwin (or another equivalent tool) to launch it.
>
> This command also requires PHP 5.4+ to be able to use the builtin webserver. If the PHP version available in the PATH is a different one, use the `MINK_PHP_BIN` env variable to select a different PHP runtime.

You can now run tests for your driver with `vendor/bin/phpunit`. This package installs PHPUnit as a dependency to ensure that a version of PHPUnit compatible with the testsuite is used.

Adding Driver-specific Tests
----------------------------

[](#adding-driver-specific-tests)

When adding extra test cases specific to the driver, either use your own namespace or put them in the `Behat\Mink\Tests\Driver\Custom` subnamespace to ensure that you will not create conflicts with test cases added in the driver testsuite in the future. When the driver has its own tests, it is recommended to add the dev requirement on `phpunit/phpunit` to ensure that the tests are compatible with phpunit even if driver-testsuite adds support for newer versions.

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance25

Infrequent updates — may be unmaintained

Popularity39

Limited adoption so far

Community36

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 58.9% 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/75c5d927b0434111db9720dd78af8c83385cf28bb9aeafd031ba8cb0c4ffc558?d=identicon)[Stof](/maintainers/Stof)

![](https://www.gravatar.com/avatar/84e70d0bdeaa7cd5875b73c862ccd8359d2df057fb48a716fdd14d99a7f24fca?d=identicon)[aik099](/maintainers/aik099)

---

Top Contributors

[![stof](https://avatars.githubusercontent.com/u/439401?v=4)](https://github.com/stof "stof (93 commits)")[![aik099](https://avatars.githubusercontent.com/u/1277526?v=4)](https://github.com/aik099 "aik099 (22 commits)")[![uuf6429](https://avatars.githubusercontent.com/u/230049?v=4)](https://github.com/uuf6429 "uuf6429 (17 commits)")[![oleg-andreyev](https://avatars.githubusercontent.com/u/1244112?v=4)](https://github.com/oleg-andreyev "oleg-andreyev (8 commits)")[![Lctrs](https://avatars.githubusercontent.com/u/5477973?v=4)](https://github.com/Lctrs "Lctrs (5 commits)")[![mvorisek](https://avatars.githubusercontent.com/u/2228672?v=4)](https://github.com/mvorisek "mvorisek (3 commits)")[![cweiske](https://avatars.githubusercontent.com/u/59036?v=4)](https://github.com/cweiske "cweiske (2 commits)")[![acoulton](https://avatars.githubusercontent.com/u/416566?v=4)](https://github.com/acoulton "acoulton (1 commits)")[![xurizaemon](https://avatars.githubusercontent.com/u/105608?v=4)](https://github.com/xurizaemon "xurizaemon (1 commits)")[![alexpott](https://avatars.githubusercontent.com/u/769634?v=4)](https://github.com/alexpott "alexpott (1 commits)")[![andrewnicols](https://avatars.githubusercontent.com/u/370047?v=4)](https://github.com/andrewnicols "andrewnicols (1 commits)")[![artursvonda](https://avatars.githubusercontent.com/u/147427?v=4)](https://github.com/artursvonda "artursvonda (1 commits)")[![Chris53897](https://avatars.githubusercontent.com/u/7104259?v=4)](https://github.com/Chris53897 "Chris53897 (1 commits)")[![longwave](https://avatars.githubusercontent.com/u/197817?v=4)](https://github.com/longwave "longwave (1 commits)")[![robertfausk](https://avatars.githubusercontent.com/u/1651297?v=4)](https://github.com/robertfausk "robertfausk (1 commits)")

---

Tags

minkphptestsuite

### Embed Badge

![Health badge](/badges/mink-driver-testsuite/health.svg)

```
[![Health](https://phpackages.com/badges/mink-driver-testsuite/health.svg)](https://phpackages.com/packages/mink-driver-testsuite)
```

###  Alternatives

[dms/phpunit-arraysubset-asserts

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

14228.7M340](/packages/dms-phpunit-arraysubset-asserts)[orchestra/workbench

Workbench Companion for Laravel Packages Development

8219.1M69](/packages/orchestra-workbench)[roquie/laravel-dusk-select2

Select2.js support for the Laravel Dusk testing.

41356.2k5](/packages/roquie-laravel-dusk-select2)[phpbenchmark/phpbenchmark

Easy to use benchmark toolkit for your PHP-application. This library contains classes for comparing algorithms as well as benchmarking application responses

8011.5k2](/packages/phpbenchmark-phpbenchmark)[kunicmarko/graphql-test

GraphQL Test Cases

1359.0k](/packages/kunicmarko-graphql-test)

PHPackages © 2026

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