Make WordPress Core

Changeset 59085


Ignore:
Timestamp:
09/24/2024 06:09:41 PM (4 months ago)
Author:
SergeyBiryukov
Message:

Build/Test Tools: Check if the WordPress Importer plugin is installed in test bootstrap.

If a hard requirement for the test suite is not fulfilled, running the tests should be blocked from the test bootstrap. A test should only fail when it doesn't produce the expected result.

Since the WordPress Importer plugin is considered a hard requirement for the test suite at this time, this commit moves the check whether the plugin is installed from individual tests to the test bootstrap.

Includes defining a global constant for the path to the file for reuse in the tests.

Reference: Core Contributor Handbook: The Code Repository (Git): Unit Tests.

Follow-up to [40531], [40532], [41090], [41169], [48592], [49535], [49571].

Props jrf, hellofromTonya.
See #61530.

Location:
trunk/tests/phpunit
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/includes/bootstrap.php

    r56552 r59085  
    215215define( 'DIR_TESTDATA', __DIR__ . '/../data' );
    216216define( 'DIR_TESTROOT', realpath( dirname( __DIR__ ) ) );
     217define( 'IMPORTER_PLUGIN_FOR_TESTS', DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php' );
     218
     219if ( ! file_exists( IMPORTER_PLUGIN_FOR_TESTS ) ) {
     220    echo 'The test suite requires the WordPress Importer plugin to be available in the `/data/plugins/` directory.'
     221        . ' See: https://make.wordpress.org/core/handbook/contribute/git/#unit-tests' . PHP_EOL,
     222    exit( 1 );
     223}
    217224
    218225define( 'WP_LANG_DIR', realpath( DIR_TESTDATA . '/languages' ) );
  • trunk/tests/phpunit/tests/import/import.php

    r56738 r59085  
    88class Tests_Import_Import extends WP_Import_UnitTestCase {
    99    public function set_up() {
     10        global $wpdb;
     11
    1012        parent::set_up();
    1113
     
    2022        add_filter( 'import_allow_create_users', '__return_true' );
    2123
    22         if ( ! file_exists( DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php' ) ) {
    23             $this->fail( 'This test requires the WordPress Importer plugin to be installed in the test suite. See: https://make.wordpress.org/core/handbook/contribute/git/#unit-tests' );
    24         }
    25 
    26         require_once DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php';
    27 
    28         global $wpdb;
     24        require_once IMPORTER_PLUGIN_FOR_TESTS;
     25
    2926        // Crude but effective: make sure there's no residual data in the main tables.
    3027        foreach ( array( 'posts', 'postmeta', 'comments', 'terms', 'term_taxonomy', 'term_relationships', 'users', 'usermeta' ) as $table ) {
  • trunk/tests/phpunit/tests/import/parser.php

    r54891 r59085  
    1818        }
    1919
    20         if ( ! file_exists( DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php' ) ) {
    21             $this->fail( 'This test requires the WordPress Importer plugin to be installed in the test suite. See: https://make.wordpress.org/core/handbook/contribute/git/#unit-tests' );
    22         }
    23 
    24         require_once DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php';
     20        require_once IMPORTER_PLUGIN_FOR_TESTS;
    2521    }
    2622
  • trunk/tests/phpunit/tests/import/postmeta.php

    r54402 r59085  
    2020        }
    2121
    22         if ( ! file_exists( DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php' ) ) {
    23             $this->fail( 'This test requires the WordPress Importer plugin to be installed in the test suite. See: https://make.wordpress.org/core/handbook/contribute/git/#unit-tests' );
    24         }
    25 
    26         require_once DIR_TESTDATA . '/plugins/wordpress-importer/wordpress-importer.php';
     22        require_once IMPORTER_PLUGIN_FOR_TESTS;
    2723    }
    2824
Note: See TracChangeset for help on using the changeset viewer.