2022-10-23 00:02:03 +00:00
2022-10-22 23:59:29 +00:00
2022-10-22 23:59:29 +00:00
2022-10-22 23:59:29 +00:00
2022-10-22 23:59:29 +00:00
2022-10-22 23:59:29 +00:00
2022-10-22 23:59:29 +00:00
2022-10-22 23:59:29 +00:00
2022-10-23 00:02:03 +00:00

Testcontainers for PHP

Testcontainers is a PHP package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The package is inspired by the Testcontainers project for Java.

@sironheart has annoyed me to test testcontainers, but it didn't existed in PHP yet.

Installation

Add this to your project with composer

composer req --dev shyim/testcontainer

Usage/Examples

MySQL

<?php

use Testcontainer\Container\MySQLContainer;

$container = new MySQLContainer('8.0');
$container->withMySQLDatabase('foo');
$container->withMySQLUser('bar', 'baz');

$container->run();

$pdo = new \PDO(
    sprintf('mysql:host=%s;port=3306', $container->getAddress()),
    'bar',
    'baz',
);

// Do something with pdo

MariaDB

<?php

use Testcontainer\Container\MariaDBContainer;

$container = new MariaDBContainer('8.0');
$container->withMariaDBDatabase('foo');
$container->withMariaDBUser('bar', 'baz');

$container->run();

$pdo = new \PDO(
    sprintf('mysql:host=%s;port=3306', $container->getAddress()),
    'bar',
    'baz',
);

// Do something with pdo

Redis


use Testcontainer\Container\RedisContainer;

$container = new RedisContainer('6.0');

$container->run();

$redis = new \Redis();
$redis->connect($container->getAddress());

// Do something with redis

OpenSearch


use Testcontainer\Container\OpenSearchContainer;

$container = new OpenSearchContainer('2');
$container->disableSecurityPlugin();

$container->run();

// Do something with opensearch

License

MIT

S
Description
https://www.testcontainers.org implementation for PHP
Readme MIT
249 KiB
Languages
PHP 100%