Skip to content

Commit 7287ebe

Browse files
committed
MQE-1040: MFTF standalone commands do not pass down constants correctly
- Updated Magento_bp and Tests_bp to be set after env is loaded - Updated standalone bootstrap to use different relative module path if magento_bp is set
1 parent 31ddcc8 commit 7287ebe

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

dev/tests/functional/_bootstrap.php

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,31 @@
1212
}
1313

1414
defined('PROJECT_ROOT') || define('PROJECT_ROOT', dirname(dirname(dirname(__DIR__))));
15+
1516
require_once realpath(PROJECT_ROOT . '/vendor/autoload.php');
1617

1718
//Load constants from .env file
18-
defined('FW_BP') || define('FW_BP', PROJECT_ROOT);
19-
20-
// add the debug flag here
21-
$debug_mode = $_ENV['MFTF_DEBUG'] ?? false;
22-
if (!(bool)$debug_mode && extension_loaded('xdebug')) {
23-
xdebug_disable();
24-
}
25-
26-
$RELATIVE_TESTS_MODULE_PATH = '/tests/functional/tests/MFTF';
27-
28-
defined('MAGENTO_BP') || define('MAGENTO_BP', PROJECT_ROOT);
29-
defined('TESTS_BP') || define('TESTS_BP', dirname(dirname(__DIR__)));
30-
defined('TESTS_MODULE_PATH') || define('TESTS_MODULE_PATH', realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH));
31-
32-
if (file_exists(TESTS_BP . DIRECTORY_SEPARATOR . '.env')) {
33-
$env = new \Dotenv\Loader(TESTS_BP . DIRECTORY_SEPARATOR . '.env');
19+
$envFilePath = dirname(dirname(__DIR__));
20+
if (file_exists($envFilePath . DIRECTORY_SEPARATOR . '.env')) {
21+
$env = new \Dotenv\Loader($envFilePath . DIRECTORY_SEPARATOR . '.env');
3422
$env->load();
3523

3624
foreach ($_ENV as $key => $var) {
3725
defined($key) || define($key, $var);
3826
}
3927

28+
if (array_key_exists('MAGENTO_BP', $_ENV)) {
29+
// TODO REMOVE THIS CODE ONCE WE HAVE STOPPED SUPPORTING dev/tests/acceptance PATH
30+
// define TEST_PATH and TEST_MODULE_PATH
31+
defined('TESTS_BP') || define('TESTS_BP', realpath(MAGENTO_BP . DIRECTORY_SEPARATOR . 'dev/tests/acceptance/'));
32+
33+
$RELATIVE_TESTS_MODULE_PATH = '/tests/functional/Magento/FunctionalTest';
34+
defined('TESTS_MODULE_PATH') || define(
35+
'TESTS_MODULE_PATH',
36+
realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH)
37+
);
38+
}
39+
4040
defined('MAGENTO_CLI_COMMAND_PATH') || define(
4141
'MAGENTO_CLI_COMMAND_PATH',
4242
'dev/tests/acceptance/utils/command.php'
@@ -46,3 +46,17 @@
4646
defined('MAGENTO_CLI_COMMAND_PARAMETER') || define('MAGENTO_CLI_COMMAND_PARAMETER', 'command');
4747
$env->setEnvironmentVariable('MAGENTO_CLI_COMMAND_PARAMETER', MAGENTO_CLI_COMMAND_PARAMETER);
4848
}
49+
50+
defined('FW_BP') || define('FW_BP', PROJECT_ROOT);
51+
defined('MAGENTO_BP') || define('MAGENTO_BP', PROJECT_ROOT);
52+
defined('TESTS_BP') || define('TESTS_BP', dirname(dirname(__DIR__)));
53+
54+
$RELATIVE_TESTS_MODULE_PATH = '/tests/functional/tests/MFTF';
55+
defined('TESTS_MODULE_PATH') || define('TESTS_MODULE_PATH', realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH));
56+
57+
58+
// add the debug flag here
59+
$debug_mode = $_ENV['MFTF_DEBUG'] ?? false;
60+
if (!(bool)$debug_mode && extension_loaded('xdebug')) {
61+
xdebug_disable();
62+
}

src/Magento/FunctionalTestingFramework/_bootstrap.php

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,17 @@
66
*/
77

88
// define framework basepath for schema pathing
9-
defined('FW_BP') || define('FW_BP', realpath(__DIR__ . '/../../../'));
10-
11-
// get the root path of the project (we will always be installed under vendor)
9+
define('FW_BP', realpath(__DIR__ . '/../../../'));
10+
// get the root path of the project
1211
$projectRootPath = substr(FW_BP, 0, strpos(FW_BP, DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR));
13-
1412
if (empty($projectRootPath)) {
1513
// If ProjectRootPath is empty, we are not under vendor and are executing standalone.
1614
require_once (realpath(FW_BP . "/dev/tests/functional/_bootstrap.php"));
1715
return;
1816
}
17+
$envFilepath = realpath($projectRootPath . '/dev/tests/acceptance/');
1918

20-
// set Magento_BP as Root_Project Path
21-
define('PROJECT_ROOT', $projectRootPath);
22-
defined('MAGENTO_BP') || define('MAGENTO_BP', realpath($projectRootPath));
2319

24-
// load .env (if it exists)
25-
$envFilepath = realpath(MAGENTO_BP . '/dev/tests/acceptance/');
2620
if (file_exists($envFilepath . DIRECTORY_SEPARATOR . '.env')) {
2721
$env = new \Dotenv\Loader($envFilepath . DIRECTORY_SEPARATOR . '.env');
2822
$env->load();
@@ -47,6 +41,8 @@
4741
$env->setEnvironmentVariable('MAGENTO_CLI_COMMAND_PARAMETER', MAGENTO_CLI_COMMAND_PARAMETER);
4842
}
4943

44+
45+
defined('MAGENTO_BP') || define('MAGENTO_BP', realpath(PROJECT_ROOT));
5046
// TODO REMOVE THIS CODE ONCE WE HAVE STOPPED SUPPORTING dev/tests/acceptance PATH
5147
// define TEST_PATH and TEST_MODULE_PATH
5248
defined('TESTS_BP') || define('TESTS_BP', realpath(MAGENTO_BP . DIRECTORY_SEPARATOR . 'dev/tests/acceptance/'));

0 commit comments

Comments
 (0)