2017 © Pedro Peláez
 

library phpunit-require-wordpress-version

Provides a trait to be used in your PHPUnit test cases to conditionally run tests based on the WordPress version

image

stephenharris/phpunit-require-wordpress-version

Provides a trait to be used in your PHPUnit test cases to conditionally run tests based on the WordPress version

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

@requires WordPress

This package provides a trait (to use in your test cases) so that you can run your phpunit tests for specific WordPress versions:, (*1)

class My_Test_Case extends WP_UnitTestCase {
    use StephenHarris\PHPUnit\RequiresWordPressVersion;

}

Then in your tests:, (*2)

class My_Test extends My_Test_Case {

    /**
     * @requires WordPress 4.4.0
     */
     function testSomethingThatRequiresTermMeta() {
            // test will be skipped unless WordPress >= 4.4.0
     }

}-

Getting Started

Installation

To install you need:, (*3)

  • PHP 5.4+
  • Composer

You can install by running following command in your project folder:, (*4)

composer require stephenharris/phpunit-require-wordpress-version:1.* --dev

Alternativevely you can directly edit your composer.json by adding:, (*5)

{
  "require-dev": {
    "stephenharris/phpunit-require-wordpress-version": "~1.0"
  }
}

Setting up your test cases

To use, simply add the use statement for the provided trait to your test case:, (*6)

class My_Test_Case extends WP_UnitTestCase {
    use StephenHarris\PHPUnit\RequiresWordPressVersion;

}

This trait overloads the PHPUnit_Framework_TestCase::checkRequirements(), if you already overloading checkRequirements() in your test case class then you can alias the method:, (*7)

class My_Test_Case extends WP_UnitTestCase {
    use StephenHarris\PHPUnit\RequiresWordPressVersion {
        checkRequirements as checkWordPressVersionRequirements;
    }

    function checkRequirements() {
        $this->checkWordPressVersionRequirements();

        //... your checkRequirements() method here
    }

}

If you are using multiple traits with the checkRequirements() method, then you will need to resolve the conflicts using aliases:, (*8)

class My_Test_Case extends WP_UnitTestCase {
    use StephenHarris\PHPUnit\RequiresWordPressVersion {
        checkRequirements as checkWordPressVersionRequirements;
    }
    use Some\Other\checkRequirementsTrait {
        checkRequirements as checkSomeOtherRequirements;
    }

    function checkRequirements() {
        $this->checkWordPressVersionRequirements();
        $this->checkSomeOtherRequirements();
    }

}

Examples

class My_Test extends My_Test_Case {

    /**
     * @requires WordPress 4.4.0
     */
     function testSomethingRequiresAtLeast440() {
            // test will be skipped unless WordPress >= 4.4.0
     }

    /**
     * @requires WordPress >= 4.4.0-alpha-123
     */
     function testSomethingRequiresAtLeast440alpha123() {
            // test will be skipped unless WordPress >= 4.4.0-alpha-123
            // also works if you specify 4.4-alpha-123 instead
     }

    /**
     * @requires WordPress > 4.6.2-rc-1
     */
     function testSomethingRequiresGreaterThan462ReleaseCandidate() {
         // test will be skipped unless WordPress version is greater than 4.6.2-rc-1
     }

    /**
     * @requires WordPress == 4.6.0
     */
     function testOnlyRunsForWordPress460() {
         // test will only run with version 4.6.0
     }

    /**
     * @requires WordPress != 4.6
     */
    function testSkippedIf460() {
        // test will be skipped if WordPress version is 4.6.0
    }

    /**
     * @requires WordPress < 4.2-alpha-1234
     */
    function testOnlyRunsForVersionsBefore42Alpha1234() {
        // test will only run for WordPress versions strictly less than4.2-alpha-1234
    }

    /**
     * @requires WordPress <= 4.2.0
     */
    function testOnlyRunsFor420AndEarlier() {
        // test will only run for WordPress version 4.2.0 and earlier
    }

}

Alternative syntax

You use @requires WordPress with just a version number, and no operator:, (*9)

/**
 * @requires WordPress 4.2.0
 */

which means the test requires WordPress 4.2.0 or higher to run, and is otherwise skipped. Or you can specify an operator. E.g:, (*10)

/**
 * @requires WordPress < 4.2.0
 */

which means the test requires a WordPress version strictly before 4.2.0., (*11)

The various operators supported are listed below. Also note, that you do not need to include the patch version number if it is 0., (*12)

  • WordPress greater than or equal to 4.4.0, (*13)

    • WordPress 4.4
    • WordPress 4.4.0
    • WordPress >= 4.4.0
    • WordPress ge 4.4.0
  • WordPress greater than 4.4.0, (*14)

    • WordPress > 4.4
    • WordPress > 4.4.0
    • WordPress gt 4.4.0
  • WordPress equal to 4.4.0, (*15)

    • WordPress == 4.4
    • WordPress == 4.4.0
    • WordPress = 4.4.0
    • WordPress eq 4.4.0
  • WordPress not equal to 4.4.0, (*16)

    • WordPress != 4.4
    • WordPress != 4.4.0
    • WordPress ne 4.4.0
    • WordPress <> 4.4.0
  • WordPress less than 4.4.0, (*17)

    • WordPress < 4.4
    • WordPress < 4.4.0
    • WordPress lt 4.4.0
  • WordPress less than or equal to 4.4.0, (*18)

    • WordPress <= 4.4
    • WordPress <= 4.4.0
    • WordPress le 4.4.0

License

This package is open source and released under MIT license. See LICENSE file for more info., (*19)

Questions? Problems?

Please open an issue at https://github.com/stephenharris/phpunit-require-wordpress-version/issues, (*20)

The Versions

01/10 2016

dev-master

9999999-dev

Provides a trait to be used in your PHPUnit test cases to conditionally run tests based on the WordPress version

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

01/10 2016

1.0.0

1.0.0.0

Provides a trait to be used in your PHPUnit test cases to conditionally run tests based on the WordPress version

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires