punktde/codeception-database

Provides a module and gherkin steps to use databases for codeception testing

Maintainers

👁 punktde

Package info

github.com/punktDe/codeception-database

pkg:composer/punktde/codeception-database

Statistics

Installs: 25 996

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

3.2.0 2024-10-18 11:55 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

GPL-3.0-or-later 57b54137b690c64e5e90372da99cf60dc129a67c

This package is auto-updated.

Last update: 2026-06-18 15:49:53 UTC


README

Gherkin Steps and additional module functions for the Codeception Database module

How to use

Extended module

Use the module PunktDe\Codeception\Database\Module\Database instead of the default codeception module db in your codeception.yaml:

modules:
 enabled:
 - PunktDe\Codeception\Database\Module\Database:
 dsn: 'mysql:host=localhost;dbname=testdb'
 user: 'root'
 password: ''
 dump: 'tests/_data/dump.sql'
 populate: true
 cleanup: true
 reconnect: true
 waitlock: 10
 ssl_key: '/path/to/client-key.pem'
 ssl_cert: '/path/to/client-cert.pem'
 ssl_ca: '/path/to/ca-cert.pem'
 ssl_verify_server_cert: false
 ssl_cipher: 'AES256-SHA'
 initial_queries:
 - 'CREATE DATABASE IF NOT EXISTS temp_db;'
 - 'USE temp_db;'
 - 'SET NAMES utf8;'

Gherkin steps

Just add the trait PunktDe\Codeception\Database\ActorTraits\Database to your testing actor. Then you can use *.feature files to write your gherkin tests with the new steps.

Example actor
<?php

/*
 * (c) 2018 punkt.de GmbH - Karlsruhe, Germany - http://punkt.de
 * All rights reserved.
 */

/**
 * Inherited Methods
 * @method void wantToTest($text)
 * @method void wantTo($text)
 * @method void execute($callable)
 * @method void expectTo($prediction)
 * @method void expect($prediction)
 * @method void amGoingTo($argumentation)
 * @method void am($role)
 * @method void lookForwardTo($achieveValue)
 * @method void comment($description)
 * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL)
 *
 * @SuppressWarnings(PHPMD)
*/
class AcceptanceTester extends \Codeception\Actor
{
 use _generated\AcceptanceTesterActions;
 use \PunktDe\Codeception\Database\ActorTraits\Database; // use the database steps trait
}
Which steps are there?

To get all the steps available you can just run the following command:

vendor/bin/codecept -c path/to/codeception.yaml gherkin:steps suiteName

This will give you a table of all the steps available.