/autoloop-extension

Automaticly run atoum's loop mode on file change

Primary LanguagePHPMIT LicenseMIT

atoum/autoloop-extension Build Status

autoloop-extension allows you automatically run your tests in atoum's loop mode when files are changed.

Example

Here is an example: we can see that the test files are automatically executed when the classes and test classes are changed.

Demo

Install it

Install extension using composer:

composer require --dev atoum/autoloop-extension

Then, the only thing you have to do is to set the watched files like this:

<?php
// .atoum.php

$runner
    ->getExtension(atoum\atoum\autoloop\extension::class)
        ->setWatchedFiles(array(__DIR__ . '/src'))
;

Use it

When the extension is loaded a new option is available:

--autoloop: Automatically relaunch tests on file change (implies --loop)

So, instead of launch the loop mode like this (an having to press enter each time you want to run the tests):

./vendor/bin/atoum --loop

Just run the tests like this:

./vendor/bin/atoum --autoloop

All your usual options are available.

Tips

Notifications

This extension works well with with atoum's notification.

//.atoum.php

$report = $script->addDefaultReport();

$notifier = new atoum\report\fields\runner\result\notifier\image\libnotify();

$notifier
    ->setSuccessImage(__DIR__ . '/vendor/atoum/atoum/resources/images/logo/success.png')
    ->setFailureImage(__DIR__ . '/vendor/atoum/atoum/resources/images/logo/failure.png')
;

$report
    ->addField($notifier)
;

With a setup like this, you will not even have to look at your console to see your test results. Here is what it looks like:

Demo

Links

Licence

autoloop-extension is released under the MIT License. See the bundled LICENSE file for details.

atoum