function JUnitConverter::findTestCases
Same name in other branches
- 9 core/lib/Drupal/Core/Test/JUnitConverter.php \Drupal\Core\Test\JUnitConverter::findTestCases()
- 8.9.x core/lib/Drupal/Core/Test/JUnitConverter.php \Drupal\Core\Test\JUnitConverter::findTestCases()
- 11.x core/lib/Drupal/Core/Test/JUnitConverter.php \Drupal\Core\Test\JUnitConverter::findTestCases()
Finds all test cases recursively from a test suite list.
@internal
Parameters
\SimpleXMLElement $element: The PHPUnit xml to search for test cases.
\SimpleXMLElement $parent: (Optional) The parent of the current element. Defaults to NULL.
Return value
array A list of all test cases.
1 call to JUnitConverter::findTestCases()
- JUnitConverter::xmlElementToRows in core/
lib/ Drupal/ Core/ Test/ JUnitConverter.php - Parse test cases from XML to {simpletest} schema.
File
-
core/
lib/ Drupal/ Core/ Test/ JUnitConverter.php, line 72
Class
- JUnitConverter
- Converts JUnit XML to Drupal's {simpletest} schema.
Namespace
Drupal\Core\TestCode
public static function findTestCases(\SimpleXMLElement $element, ?\SimpleXMLElement $parent = NULL) {
if (!isset($parent)) {
$parent = $element;
}
if ($element->getName() === 'testcase' && (int) $parent->attributes()->tests > 0) {
// Add the class attribute if the test case does not have one. This is the
// case for tests using a data provider. The name of the parent testsuite
// will be in the format class::method.
if (!$element->attributes()->class) {
$name = explode('::', $parent->attributes()->name, 2);
$element->addAttribute('class', $name[0]);
}
return [
$element,
];
}
$test_cases = [];
foreach ($element as $child) {
$file = (string) $parent->attributes()->file;
if ($file && !$child->attributes()->file) {
$child->addAttribute('file', $file);
}
$test_cases[] = static::findTestCases($child, $element);
}
return array_merge(...$test_cases);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.