fbpx

Category: PHP

PHPUnit is a Testing Framework written in PHP. It allows you to find glitches very early on and can save lots of time.

It's highly recommend to use it for automated testing for a medium to large projects. Manual testing is just not enough.

Why do you need to check if PHPUnit Tests are Running?

During tests your application's behavior can change a little bit when it runs in a testing environment.
For example it can call different API servers and not the live API servers, load different config files etc.

How to Detect if PHPUnit Tests are Running

<?php

/**
 * Orbisius_Article_7558::isInRunningTest();
 * @see https://orbisius.com/7558
 * @author Svetoslav Marinov | https://orbisius.com
 */
class Orbisius_Article_7558 {
    /**
     * Orbisius_Article_7558::isInRunningTest();
     * https://stackoverflow.com/questions/10253240/how-to-determine-if-phpunit-tests-are-running
     * @return bool
     */
    public static function isInRunningTest() {
        if (PHP_SAPI != 'cli') {
            return false;
        }

        if ( defined('PHPUNIT_COMPOSER_INSTALL') && defined('__PHPUNIT_PHAR__') ) {
            return true;
        }

        if (strpos($_SERVER['argv'][0], 'phpunit') !== false) {
            return true;
        }

        return false;
    }
}

The advantages of using PHPUnit for testing your PHP applications include:

  • Finding bugs early: By testing the individual parts of your application, you can catch and fix bugs before they become bigger problems.
  • Refactoring confidence: You can make changes to your code and be sure you haven't broken anything because the tests will show if something's wrong.
  • Better design: Writing tests often leads to better, more modular code since you have to think about how to isolate each part for testing.
  • Documentation: Tests serve as a form of documentation that shows how your code is supposed to work.

Join our mailing list

Get important news about cool products we release and invitations to beta test new products

Find out the Social networks we're on