Let infection run the test suite for its job (2) (#876) #259
ci.yml
on: push
Matrix: Code Coverage
Matrix: Coding Standards
Matrix: Lint composer.json
Matrix: Static Analysis
Matrix: Tests
Matrix: Lint XMLs
Annotations
19 warnings
Lint composer.json (8.2)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Lint XMLs (8.2)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Tests (8.3, lowest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Tests (8.2, highest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Coding Standards (8.2)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Tests (8.3, highest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Static Analysis (8.2)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Tests (8.2, lowest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Code Coverage (8.2)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Code Coverage (8.2):
src/JUnit/LogMerger.php#L81
Escaped Mutant for Mutator "Continue_":
@@ @@
foreach ($suite2->suites as $suite2suiteName => $suite2suite) {
if (!isset($suites[$suite2suiteName])) {
$suites[$suite2suiteName] = $suite2suite;
- continue;
+ break;
}
$suites[$suite2suiteName] = $this->mergeSuites($suites[$suite2suiteName], $suite2suite);
}
|
Code Coverage (8.2):
src/JUnit/LogMerger.php#L90
Escaped Mutant for Mutator "FunctionCallRemoval":
@@ @@
}
$suites[$suite2suiteName] = $this->mergeSuites($suites[$suite2suiteName], $suite2suite);
}
- ksort($suites);
+
return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors + $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, array_merge($suite1->cases, $suite2->cases));
}
}
|
Code Coverage (8.2):
src/JUnit/LogMerger.php#L97
Escaped Mutant for Mutator "Plus":
@@ @@
$suites[$suite2suiteName] = $this->mergeSuites($suites[$suite2suiteName], $suite2suite);
}
ksort($suites);
- return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors + $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, array_merge($suite1->cases, $suite2->cases));
+ return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors - $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, array_merge($suite1->cases, $suite2->cases));
}
}
|
Code Coverage (8.2):
src/JUnit/LogMerger.php#L102
Escaped Mutant for Mutator "UnwrapArrayMerge":
@@ @@
$suites[$suite2suiteName] = $this->mergeSuites($suites[$suite2suiteName], $suite2suite);
}
ksort($suites);
- return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors + $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, array_merge($suite1->cases, $suite2->cases));
+ return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors + $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, $suite1->cases);
}
}
|
Code Coverage (8.2):
src/JUnit/LogMerger.php#L102
Escaped Mutant for Mutator "UnwrapArrayMerge":
@@ @@
$suites[$suite2suiteName] = $this->mergeSuites($suites[$suite2suiteName], $suite2suite);
}
ksort($suites);
- return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors + $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, array_merge($suite1->cases, $suite2->cases));
+ return new TestSuite($suite1->name, $suite1->tests + $suite2->tests, $suite1->assertions + $suite2->assertions, $suite1->failures + $suite2->failures, $suite1->errors + $suite2->errors, $suite1->skipped + $suite2->skipped, $suite1->time + $suite2->time, $suite1->file, $suites, $suite2->cases);
}
}
|
Code Coverage (8.2):
src/JUnit/TestCase.php#L87
Escaped Mutant for Mutator "CastString":
@@ @@
return new TestCaseWithMessage((string) $node['name'], (string) $node['class'], (string) $node['file'], (int) $node['line'], (int) $node['assertions'], (float) $node['time'], $type, $text, MessageType::failure);
}
if ($node->xpath('skipped') !== []) {
- $text = (string) $node['name'];
+ $text = $node['name'];
if ((string) $node['class'] !== '') {
$text = sprintf("%s::%s\n\n%s:%s", $node['class'], $node['name'], $node['file'], $node['line']);
}
|
Code Coverage (8.2):
src/JUnit/TestCase.php#L88
Escaped Mutant for Mutator "CastString":
@@ @@
}
if ($node->xpath('skipped') !== []) {
$text = (string) $node['name'];
- if ((string) $node['class'] !== '') {
+ if ($node['class'] !== '') {
$text = sprintf("%s::%s\n\n%s:%s", $node['class'], $node['name'], $node['file'], $node['line']);
}
return new TestCaseWithMessage((string) $node['name'], (string) $node['class'], (string) $node['file'], (int) $node['line'], (int) $node['assertions'], (float) $node['time'], null, $text, MessageType::skipped);
|
Code Coverage (8.2):
src/JUnit/TestCase.php#L88
Escaped Mutant for Mutator "NotIdentical":
@@ @@
}
if ($node->xpath('skipped') !== []) {
$text = (string) $node['name'];
- if ((string) $node['class'] !== '') {
+ if ((string) $node['class'] === '') {
$text = sprintf("%s::%s\n\n%s:%s", $node['class'], $node['name'], $node['file'], $node['line']);
}
return new TestCaseWithMessage((string) $node['name'], (string) $node['class'], (string) $node['file'], (int) $node['line'], (int) $node['assertions'], (float) $node['time'], null, $text, MessageType::skipped);
|
Code Coverage (8.2):
src/JUnit/Writer.php#L31
Escaped Mutant for Mutator "TrueValue":
@@ @@
public function __construct()
{
$this->document = new DOMDocument('1.0', 'UTF-8');
- $this->document->formatOutput = true;
+ $this->document->formatOutput = false;
}
public function write(TestSuite $testSuite, string $path): void
{
|
Code Coverage (8.2):
src/Options.php#L104
Escaped Mutant for Mutator "LogicalOrAllSubExprNegation":
@@ @@
*/
private function __construct(public readonly Configuration $configuration, public readonly string $phpunit, public readonly string $cwd, public readonly int $maxBatchSize, public readonly bool $noTestTokens, public readonly ?array $passthruPhp, public readonly array $phpunitOptions, public readonly int $processes, public readonly string $runner, public readonly string $tmpDir, public readonly bool $verbose, public readonly bool $functional)
{
- $this->needsTeamcity = $configuration->outputIsTeamCity() || $configuration->hasLogfileTeamcity();
+ $this->needsTeamcity = !$configuration->outputIsTeamCity() || !$configuration->hasLogfileTeamcity();
}
/** @param non-empty-string $cwd */
public static function fromConsoleInput(InputInterface $input, string $cwd): self
|