Skip to content

Commit bc5f0c9

Browse files
Avoid loading the XML configuration file twice
1 parent 34b048d commit bc5f0c9

File tree

2 files changed

+34
-35
lines changed

2 files changed

+34
-35
lines changed

src/TextUI/Command.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,16 +331,16 @@ protected function handleArguments(array $argv): void
331331

332332
if (isset($this->arguments['configuration'])) {
333333
try {
334-
$configuration = (new Loader)->load($this->arguments['configuration']);
334+
$this->arguments['configurationObject'] = (new Loader)->load($this->arguments['configuration']);
335335
} catch (Throwable $e) {
336336
print $e->getMessage() . PHP_EOL;
337337

338338
exit(TestRunner::FAILURE_EXIT);
339339
}
340340

341-
$phpunitConfiguration = $configuration->phpunit();
341+
$phpunitConfiguration = $this->arguments['configurationObject']->phpunit();
342342

343-
(new PhpHandler)->handle($configuration->php());
343+
(new PhpHandler)->handle($this->arguments['configurationObject']->php());
344344

345345
if (isset($this->arguments['bootstrap'])) {
346346
$this->handleBootstrap($this->arguments['bootstrap']);
@@ -384,7 +384,7 @@ protected function handleArguments(array $argv): void
384384

385385
if (!isset($this->arguments['test'])) {
386386
$this->arguments['test'] = (new TestSuiteMapper)->map(
387-
$configuration->testSuite(),
387+
$this->arguments['configurationObject']->testSuite(),
388388
$this->arguments['testsuite'] ?? ''
389389
);
390390
}
@@ -396,8 +396,8 @@ protected function handleArguments(array $argv): void
396396
$this->arguments['printer'] = $this->handlePrinter($this->arguments['printer']);
397397
}
398398

399-
if (isset($configuration, $this->arguments['warmCoverageCache'])) {
400-
$this->handleWarmCoverageCache($configuration);
399+
if (isset($this->arguments['configurationObject'], $this->arguments['warmCoverageCache'])) {
400+
$this->handleWarmCoverageCache($this->arguments['configurationObject']);
401401
}
402402

403403
if (!isset($this->arguments['test'])) {

src/TextUI/TestRunner.php

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -176,10 +176,10 @@ public function run(TestSuite $suite, array $arguments = [], array $warnings = [
176176

177177
if ($arguments['cacheResult']) {
178178
if (!isset($arguments['cacheResultFile'])) {
179-
if (isset($arguments['configuration'])) {
180-
assert($arguments['configuration'] instanceof Configuration);
179+
if (isset($arguments['configurationObject'])) {
180+
assert($arguments['configurationObject'] instanceof Configuration);
181181

182-
$cacheLocation = $arguments['configuration']->filename();
182+
$cacheLocation = $arguments['configurationObject']->filename();
183183
} else {
184184
$cacheLocation = $_SERVER['PHP_SELF'];
185185
}
@@ -429,10 +429,10 @@ public function run(TestSuite $suite, array $arguments = [], array $warnings = [
429429
$coverageFilterFromOption = true;
430430
}
431431

432-
if (isset($arguments['configuration'])) {
433-
assert($arguments['configuration'] instanceof Configuration);
432+
if (isset($arguments['configurationObject'])) {
433+
assert($arguments['configurationObject'] instanceof Configuration);
434434

435-
$codeCoverageConfiguration = $arguments['configuration']->codeCoverage();
435+
$codeCoverageConfiguration = $arguments['configurationObject']->codeCoverage();
436436

437437
if ($codeCoverageConfiguration->hasNonEmptyListOfFilesToBeIncludedInCodeCoverageReport()) {
438438
$coverageFilterFromConfigurationFile = true;
@@ -489,10 +489,10 @@ public function run(TestSuite $suite, array $arguments = [], array $warnings = [
489489
}
490490
}
491491

492-
if (isset($arguments['configuration'])) {
493-
assert($arguments['configuration'] instanceof Configuration);
492+
if (isset($arguments['configurationObject'])) {
493+
assert($arguments['configurationObject'] instanceof Configuration);
494494

495-
$codeCoverageConfiguration = $arguments['configuration']->codeCoverage();
495+
$codeCoverageConfiguration = $arguments['configurationObject']->codeCoverage();
496496

497497
if ($codeCoverageConfiguration->hasNonEmptyListOfFilesToBeIncludedInCodeCoverageReport()) {
498498
if ($codeCoverageConfiguration->includeUncoveredFiles()) {
@@ -540,12 +540,12 @@ public function run(TestSuite $suite, array $arguments = [], array $warnings = [
540540
$this->writeMessage('Runtime', $runtime);
541541
}
542542

543-
if (isset($arguments['configuration'])) {
544-
assert($arguments['configuration'] instanceof Configuration);
543+
if (isset($arguments['configurationObject'])) {
544+
assert($arguments['configurationObject'] instanceof Configuration);
545545

546546
$this->writeMessage(
547547
'Configuration',
548-
$arguments['configuration']->filename()
548+
$arguments['configurationObject']->filename()
549549
);
550550
}
551551

@@ -587,19 +587,19 @@ public function run(TestSuite $suite, array $arguments = [], array $warnings = [
587587
$this->writeMessage('Warning', $warning);
588588
}
589589

590-
if (isset($arguments['configuration'])) {
591-
assert($arguments['configuration'] instanceof Configuration);
590+
if (isset($arguments['configurationObject'])) {
591+
assert($arguments['configurationObject'] instanceof Configuration);
592592

593-
if ($arguments['configuration']->hasValidationErrors()) {
594-
if ((new SchemaDetector)->detect($arguments['configuration']->filename())->detected()) {
593+
if ($arguments['configurationObject']->hasValidationErrors()) {
594+
if ((new SchemaDetector)->detect($arguments['configurationObject']->filename())->detected()) {
595595
$this->writeMessage('Warning', 'Your XML configuration validates against a deprecated schema.');
596596
$this->writeMessage('Suggestion', 'Migrate your XML configuration using "--migrate-configuration"!');
597597
} else {
598598
$this->write(
599599
"\n Warning - The configuration file did not pass validation!\n The following problems have been detected:\n"
600600
);
601601

602-
$this->write($arguments['configuration']->validationErrors());
602+
$this->write($arguments['configurationObject']->validationErrors());
603603

604604
$this->write("\n Test results may not be as expected.\n\n");
605605
}
@@ -876,19 +876,18 @@ private function write(string $buffer): void
876876
*/
877877
private function handleConfiguration(array &$arguments): void
878878
{
879-
if (isset($arguments['configuration']) &&
880-
!$arguments['configuration'] instanceof Configuration) {
881-
$arguments['configuration'] = (new Loader)->load($arguments['configuration']);
879+
if (!isset($arguments['configurationObject']) && isset($arguments['configuration'])) {
880+
$arguments['configurationObject'] = (new Loader)->load($arguments['configuration']);
882881
}
883882

884883
$arguments['debug'] = $arguments['debug'] ?? false;
885884
$arguments['filter'] = $arguments['filter'] ?? false;
886885
$arguments['listeners'] = $arguments['listeners'] ?? [];
887886

888-
if (isset($arguments['configuration'])) {
889-
(new PhpHandler)->handle($arguments['configuration']->php());
887+
if (isset($arguments['configurationObject'])) {
888+
(new PhpHandler)->handle($arguments['configurationObject']->php());
890889

891-
$codeCoverageConfiguration = $arguments['configuration']->codeCoverage();
890+
$codeCoverageConfiguration = $arguments['configurationObject']->codeCoverage();
892891

893892
if (!isset($arguments['coverageClover']) && $codeCoverageConfiguration->hasClover()) {
894893
$arguments['coverageClover'] = $codeCoverageConfiguration->clover()->target()->path();
@@ -928,7 +927,7 @@ private function handleConfiguration(array &$arguments): void
928927
$arguments['coverageXml'] = $codeCoverageConfiguration->xml()->target()->path();
929928
}
930929

931-
$phpunitConfiguration = $arguments['configuration']->phpunit();
930+
$phpunitConfiguration = $arguments['configurationObject']->phpunit();
932931

933932
$arguments['backupGlobals'] = $arguments['backupGlobals'] ?? $phpunitConfiguration->backupGlobals();
934933
$arguments['backupStaticAttributes'] = $arguments['backupStaticAttributes'] ?? $phpunitConfiguration->backupStaticAttributes();
@@ -994,7 +993,7 @@ private function handleConfiguration(array &$arguments): void
994993
$groupCliArgs = $arguments['groups'];
995994
}
996995

997-
$groupConfiguration = $arguments['configuration']->groups();
996+
$groupConfiguration = $arguments['configurationObject']->groups();
998997

999998
if (!isset($arguments['groups']) && $groupConfiguration->hasInclude()) {
1000999
$arguments['groups'] = $groupConfiguration->include()->asArrayOfStrings();
@@ -1006,11 +1005,11 @@ private function handleConfiguration(array &$arguments): void
10061005

10071006
$extensionHandler = new ExtensionHandler;
10081007

1009-
foreach ($arguments['configuration']->extensions() as $extension) {
1008+
foreach ($arguments['configurationObject']->extensions() as $extension) {
10101009
$this->addExtension($extensionHandler->createHookInstance($extension));
10111010
}
10121011

1013-
foreach ($arguments['configuration']->listeners() as $listener) {
1012+
foreach ($arguments['configurationObject']->listeners() as $listener) {
10141013
$arguments['listeners'][] = $extensionHandler->createTestListenerInstance($listener);
10151014
}
10161015

@@ -1023,7 +1022,7 @@ private function handleConfiguration(array &$arguments): void
10231022
);
10241023
}
10251024

1026-
$loggingConfiguration = $arguments['configuration']->logging();
1025+
$loggingConfiguration = $arguments['configurationObject']->logging();
10271026

10281027
if ($loggingConfiguration->hasText()) {
10291028
$arguments['listeners'][] = new DefaultResultPrinter(
@@ -1052,7 +1051,7 @@ private function handleConfiguration(array &$arguments): void
10521051
$arguments['testdoxXMLFile'] = $loggingConfiguration->testDoxXml()->target()->path();
10531052
}
10541053

1055-
$testdoxGroupConfiguration = $arguments['configuration']->testdoxGroups();
1054+
$testdoxGroupConfiguration = $arguments['configurationObject']->testdoxGroups();
10561055

10571056
if (!isset($arguments['testdoxGroups']) && $testdoxGroupConfiguration->hasInclude()) {
10581057
$arguments['testdoxGroups'] = $testdoxGroupConfiguration->include()->asArrayOfStrings();

0 commit comments

Comments
 (0)