Utiliser un fichier de "bootstrap" - tharkun/atoum GitHub Wiki

atoum autorise la définition d'un fichier de "bootstrap" qui sera exécuté avant chaque méthode de test et qui permet donc d'initialiser l'environnement d'exécution des tests.
Il devient ainsi possible de définir, par exemple, une fonction d'auto-chargement de classes, de lire un fichier de configuration ou de réaliser tout autre opération nécessaires à la bonne exécution des tests.
La définition de ce fichier de "bootstrap" peut se faire de deux façons différentes, soit en ligne de commande, soit via un fichier de configuration.
En ligne de commande, il faut utiliser au choix l'argument -bfou l'argument --bootstrap-file suivi du chemin relatif ou absolu vers le fichier concerné. Si vous utilisez l'archive PHAR de atoum, la commande à exécuter est au choix l'une des deux suivantes :

# php mageekguy.atoum.phar -bf path/to/bootstrap/file ...
# php mageekguy.atoum.phar --bootstrap-file path/to/bootstrap/file ...

Si vous n'utilisez pas l'archive PHAR de atoum, la commande à exécuter est donc au choix l'une des deux suivantes :

# php path/to/atoum/scripts/runner.php -bf path/to/bootstrap/file ...
# php path/to/atoum/scripts/runner.php --bootstrap-file path/to/bootstrap/file ...

Évidemment, il est également possible d'utiliser l'un de ces deux arguments via l'autorunner :

# php path/to/tests\units\test.php -bf path/to/bootstrap/file ...
# php path/to/tests\units\test.php --bootstrap-file path/to/bootstrap/file ...

Il est également possible de définir le fichier de "bootstrap" à utiliser via un fichier de configuration, à l'aide de la méthode \mageekguy\atoum\runner::setBootstrapFile().
Dans un soucis de simplicité, il peut être pertnient de réaliser cette définition via le fichier de configuration par défaut de atoum, nommé .atoum.php.
S'il est situé dans le répertoire contenant les sources de atoum ou dans le même répertoire que son archive PHAR, ce fichier est en effet systèmatiquement utilisé en tant que fichier de configuration.
Il devient ainsi inutile d'utiliser systèmatiquement soit l'argument -c, soit l'argument --configuration-files pour définir le fichier de configuration à utiliser.

<?php

// Fichier .atoum.php

// Definition du fichier de bootstrap
$runner->setBootstrapFile(__DIR__ . '/bootstrap.php');

?>

Attention, même si les deux fichiers contiennent du PHP, un fichier de bootstrap n'est pas un fichier de configuration et n'a donc pas les mêmes possibilités.
Dans un fichier de configuration, atoum est configurable via la variable $runner, qui n'est pas définie dans un fichier de "bootstrap".
De plus, ils ne sont pas inclus au même moment, puisque le fichier de configuration est utilisé par atoum avant même le début de l'exécution des tests, alors que le fichier de "bootstrap" est inclus juste avant l'exécution d'une méthode de test. Enfin, le fichier de "bootstrap" peut permettre de ne pas avoir à inclure systématiquement le fichier scripts/runner.php ou l'archive PHAR de atoum dans les classes de test.
Cependant, dans ce cas, il ne sera plus possible d'exécuter directement un fichier de test directement via l'exécutable PHP en ligne de commande.
Pour cela, il suffit d'inclure dans le fichier de "bootstrap" le fichier scripts/runner.php ou l'archive PHAR de atoum et d'exécuter systématiquement les tests en ligne de commande via scripts/runner.php ou l'archive PHAR.
Le fichier de "bootstrap" doit donc au minimum contenir ceci :

<?php

// si l'archive PHAR est utilisée :
require_once path/to/mageekguy.atoum.phar;

// ou si les sources sont utilisés :
// require_once path/atoum/scripts/runner.php

?>