function TestRequirementsTrait::checkModuleRequirements
Same name in other branches
- 9 core/tests/Drupal/Tests/TestRequirementsTrait.php \Drupal\Tests\TestRequirementsTrait::checkModuleRequirements()
- 8.9.x core/tests/Drupal/Tests/TestRequirementsTrait.php \Drupal\Tests\TestRequirementsTrait::checkModuleRequirements()
Checks missing module requirements.
Iterates through a list of requires annotations and looks for missing modules. The test will be skipped if any of the required modules is missing.
Parameters
string $root: The path to the root of the Drupal installation to scan.
string[] $annotations: A list of requires annotations from either a method or class annotation.
Throws
\PHPUnit\Framework\SkippedTestError Thrown when the requirements are not met, and this test should be skipped. Callers should not catch this exception.
Deprecated
in drupal:10.3.0 and is removed from drupal:11.0.0. There is no replacement.
See also
https://www.drupal.org/node/3418480
1 call to TestRequirementsTrait::checkModuleRequirements()
- TestRequirementsTrait::checkRequirements in core/
tests/ Drupal/ Tests/ TestRequirementsTrait.php - Check module requirements for the Drupal use case.
File
-
core/
tests/ Drupal/ Tests/ TestRequirementsTrait.php, line 96
Class
- TestRequirementsTrait
- Allows test classes to require Drupal modules as dependencies.
Namespace
Drupal\TestsCode
private function checkModuleRequirements($root, array $annotations) {
@trigger_error(__METHOD__ . '() is deprecated in drupal:10.3.0 and is removed from drupal:11.0.0. There is no replacement. See https://www.drupal.org/node/3418480', E_USER_DEPRECATED);
// Make a list of required modules.
$required_modules = [];
foreach ($annotations as $requirement) {
if (str_starts_with($requirement, 'module ')) {
$required_modules[] = trim(str_replace('module ', '', $requirement));
}
}
// If there are required modules, check if they're available.
if (!empty($required_modules)) {
// Scan for modules.
$discovery = new ExtensionDiscovery($root, FALSE);
$discovery->setProfileDirectories([]);
$list = array_keys($discovery->scan('module'));
$not_available = array_diff($required_modules, $list);
if (!empty($not_available)) {
throw new SkippedTestError('Required modules: ' . implode(', ', $not_available));
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.