
Bueno, lo reconozco… este post es un clásico post para recordar como hacerlo en otro momento, de todas formas estoy seguro que a muchos les resultara útil.
La idea que tenía en mente era poder configurar todo lo relacionado a phpunit en un xml, la suerte es que phpunit posee este feature!
En este XML podemos indicar un monton de cosas, entre ellas definir los distintos suites de pruebas que tendrá nuestro proyecto, que tipo de log va a exportar, si colorea el código o no, si utiliza colores para mostrar el resultado en consola, el path del archivo bootStarp, etc.
El formato del xml es muy sencillo, veamos
<phpunit
backupGlobals="false"
backupStaticAttributes="true"
bootstrap="/path/to/bootstrap.php"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="true"
stopOnFailure="true"
syntaxCheck="false"
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader">
<testsuites>
<testsuite name="Nombre de la Suite 1">
<file>pathTo/classTest.php</file>
</testsuite>
</testsuites>
<logging>
<log type="coverage-html" target="/tmp/coverage.html" charset="UTF-8" yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/>
</logging>
<php>
<ini name="memory_limit" value="256"/>
<const name="foo" value="bar"/>
<var name="foo" value="bar"/>
</php>
</phpunit>
Y la forma de indicarle al phpunit que archivo de configuracion usar es:
phpunit --configuration pathTo/config.xml
Como puede verse en el nodo phpunit cada atributo representa una configuración de phpunit para su ejecución.
Luego existen otros nodos
- testsuites: aca definimos los distintos suites que tendra nuestro proyecto y las clases de teste que componen cada uno
- logging: indica que tipo log exportara phpunit, hay varias opciones:
- php: aca podemos definir distintas cosas
Bueno, con esto a mi me alcanza, existen otros nodos (para definir listeners por ejemplo) que los pueden buscar en el Apéndice C de la documentación de PHPUnit
Genial, muchas gracias por la referencia! Excelente como kickoff