Add a method by which testcases can load necessary files via include_once.
There are a number of files that are only loaded when another function is called (for example, load a reporting class when displaying a widget). An autoloader would be the ideal way to handle this (both in production and for tests), but until PHP compatibility is sorted out this commit adds an easy fix: Testcases can now populate the protected, static $includes property with filepaths relative to the project root; when the testcase boots up, these files will automatically be included.
This commit is contained in:
parent
d0efd7251e
commit
e68084d7b8
|
@ -12,6 +12,28 @@ class WC_Unit_Test_Case extends WP_UnitTestCase {
|
|||
/** @var WC_Unit_Test_Factory instance */
|
||||
protected $factory;
|
||||
|
||||
/**
|
||||
* Additional files, relative to the plugin's root directory, that should be explicitly included.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $includes;
|
||||
|
||||
/**
|
||||
* If a test has declared include files, load them before running the tests in the class.
|
||||
*
|
||||
* @beforeClass
|
||||
*/
|
||||
public static function include_dependencies() {
|
||||
$base_dir = trailingslashit( dirname( dirname( __DIR__ ) ) );
|
||||
|
||||
if ( ! empty( static::$includes ) ) {
|
||||
foreach ( (array) static::$includes as $include ) {
|
||||
include_once $base_dir . $include;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup test case.
|
||||
*
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
class WC_Tests_Admin_Report extends WC_Unit_Test_Case {
|
||||
|
||||
/**
|
||||
* Load the necessary files, as they're not automatically loaded by WooCommerce.
|
||||
* Additional files, relative to the plugin's root directory, that should be explicitly included.
|
||||
*
|
||||
* @beforeClass
|
||||
* @var array
|
||||
*/
|
||||
public static function includes() {
|
||||
include_once WC_Unit_Tests_Bootstrap::instance()->plugin_dir . '/includes/admin/reports/class-wc-admin-report.php';
|
||||
}
|
||||
public static $includes = array(
|
||||
'includes/admin/reports/class-wc-admin-report.php',
|
||||
);
|
||||
|
||||
/**
|
||||
* Clear cached report data.
|
||||
|
|
Loading…
Reference in New Issue