Skip to content
Snippets Groups Projects
marp: true
style: |
  .columns {
    display: grid;
    grid-template:
        "a b b";
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
  .columns-left {
    background: green;
  }
  .columns-right {
    background: beige;
  }

TP CodeCeption

Source : https://codeception.com/docs/GettingStarted

(Codeception](https://codeception.com) est un framework de tests pour envirnonnements de dévloppements PHP : Symfony, Laravel, etc.

Il fournit les outils pour développer des tests : unitaires, fonctionnels, d'intégration et d'acceptation (définis par le client dans le cahier des charges).

Trois types de tests

  • Unit : teste une classe PHP
  • Functional : teste un ensemble de classes PHP
  • Acceptance : teste l'application Web finale comme un utilisateur

Prérequis projet PasteBin

  1. Installer le logiciel PrivateBin with git clone git clone https://github.com/PrivateBin/PrivateBin
  2. Installation des dépendances : composer update
  3. Démarrer le serveur : php -S localhost:8000
  4. Tester en ouvrant la page : http://localhost:80001.
  5. Retirer phpunit à cause d'un conflit : composer remove 'phpunit/phpunit'

Installation de codeception

Source : https://codeception.com/quickstart

  1. composer require "codeception/codeception" --dev
  2. php vendor/bin/codecept bootstrap

Vous pouvez également installer l'extension Codeception pour votre IDE si elle existe.


Création du premier test

Un premier test d'acceptation, créé automatqiuement dans tests/Acceptance/SigninCest.php

  1. php vendor/bin/codecept generate:cest Acceptance Signin

Modification du premier test

Test en Langage Laturel

I amOnPage '/login'
I fillField 'email','john_doe@gmail.com''
I fillField 'password','123456'
I click 'Login'

Test en Codeception PHP

namespace Tests\Acceptance;

use \Tests\Support\AcceptanceTester;

class SigninCest
{
    public function signInSuccessfully(AcceptanceTester $I)
    {
        $I->amOnPage('/login');
        $I->fillField('email', 'john_doe@gmail.com');
        $I->fillField('password', '123456');
        $I->click('Login');
    }
}

Lancement du test

Configurer le lancement des tests d'acceptation, en indiquant l'URL de votre application : tests/Acceptance.suite.yml

actor: AcceptanceTester
modules:
    enabled:
        - PhpBrowser:
            url: http://localhost:8000/

Lancer le test avec la commande run: php vendor/bin/codecept run --steps

Modifier le test pour valider le lancement de PasteBin.


Suite sur Codeception :


Mise en oeuvre sur un autre exemple

Source : https://github.com/Codeception/laravel-module-tests

git clone https://github.com/Codeception/laravel-module-tests.git goodcode
cd goodcode
composer update
cp .env.testing .env
touch database/database.sqlite
php artisan migrate --seed
vendor/bin/codecept run Functional
php artisan serve