Autoload test helpers and exclude from test suites. (#39586)
* Autoload test helpers and exclude from test suites. This avoids loading order problems, and eliminates warnings (about HposTestCase) not containing any tests. * Add changefile(s) from automation for the following project(s): woocommerce --------- Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
parent
a5539edd14
commit
f36cb3a50c
|
@ -0,0 +1,5 @@
|
||||||
|
Significance: patch
|
||||||
|
Type: dev
|
||||||
|
Comment: Improves organization of test helper code; does not merit its own changelog entry.
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,13 @@
|
||||||
<testsuite name="wc-unittests-all">
|
<testsuite name="wc-unittests-all">
|
||||||
<directory suffix=".php">./tests/legacy/unit-tests</directory>
|
<directory suffix=".php">./tests/legacy/unit-tests</directory>
|
||||||
<directory suffix=".php">./tests/php</directory>
|
<directory suffix=".php">./tests/php</directory>
|
||||||
|
<exclude>./tests/php/helpers</exclude>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
<testsuite name="shard1">
|
<testsuite name="shard1">
|
||||||
<directory suffix=".php">./tests/legacy/unit-tests</directory>
|
<directory suffix=".php">./tests/legacy/unit-tests</directory>
|
||||||
<directory suffix=".php">./tests/php</directory>
|
<directory suffix=".php">./tests/php</directory>
|
||||||
<exclude>./tests/legacy/unit-tests/woocommerce-admin</exclude>
|
<exclude>./tests/legacy/unit-tests/woocommerce-admin</exclude>
|
||||||
|
<exclude>./tests/php/helpers</exclude>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
<testsuite name="shard2">
|
<testsuite name="shard2">
|
||||||
<directory suffix=".php">./tests/legacy/unit-tests/woocommerce-admin</directory>
|
<directory suffix=".php">./tests/legacy/unit-tests/woocommerce-admin</directory>
|
||||||
|
|
|
@ -102,10 +102,24 @@ class WC_Unit_Tests_Bootstrap {
|
||||||
* Register autoloader for the files in the 'tests/tools' directory, for the root namespace 'Automattic\WooCommerce\Testing\Tools'.
|
* Register autoloader for the files in the 'tests/tools' directory, for the root namespace 'Automattic\WooCommerce\Testing\Tools'.
|
||||||
*/
|
*/
|
||||||
protected static function register_autoloader_for_testing_tools() {
|
protected static function register_autoloader_for_testing_tools() {
|
||||||
return spl_autoload_register(
|
spl_autoload_register(
|
||||||
function ( $class ) {
|
function ( $class ) {
|
||||||
|
$tests_directory = dirname( __FILE__, 2 );
|
||||||
|
$helpers_directory = $tests_directory . '/php/helpers';
|
||||||
|
|
||||||
|
// Support loading top-level classes from the `php/helpers` directory.
|
||||||
|
if ( ! str_contains( $class, '\\' ) ) {
|
||||||
|
$helper_path = realpath( "$helpers_directory/$class.php" );
|
||||||
|
|
||||||
|
if ( dirname( $helper_path ) === $helpers_directory && file_exists( $helper_path ) ) {
|
||||||
|
require $helper_path;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, check if this might relate to an Automattic\WooCommerce\Testing\Tools class.
|
||||||
$prefix = 'Automattic\\WooCommerce\\Testing\\Tools\\';
|
$prefix = 'Automattic\\WooCommerce\\Testing\\Tools\\';
|
||||||
$base_dir = dirname( dirname( __FILE__ ) ) . '/Tools/';
|
$base_dir = $tests_directory . '/Tools/';
|
||||||
$len = strlen( $prefix );
|
$len = strlen( $prefix );
|
||||||
if ( strncmp( $prefix, $class, $len ) !== 0 ) {
|
if ( strncmp( $prefix, $class, $len ) !== 0 ) {
|
||||||
// no, move to the next registered autoloader.
|
// no, move to the next registered autoloader.
|
||||||
|
|
|
@ -8,8 +8,6 @@ use Automattic\WooCommerce\RestApi\UnitTests\Helpers\OrderHelper;
|
||||||
use Automattic\WooCommerce\RestApi\UnitTests\HPOSToggleTrait;
|
use Automattic\WooCommerce\RestApi\UnitTests\HPOSToggleTrait;
|
||||||
use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
|
use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
|
||||||
|
|
||||||
require_once __DIR__ . '/../../../../helpers/HPOSToggleTrait.php';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for DataSynchronizer class.
|
* Tests for DataSynchronizer class.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue