|
12 | 12 | use function assert;
|
13 | 13 | use function file_put_contents;
|
14 | 14 | use function sprintf;
|
| 15 | +use function sys_get_temp_dir; |
15 | 16 | use PHPUnit\Event\Facade as EventFacade;
|
16 | 17 | use PHPUnit\Framework\TestCase;
|
17 | 18 | use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry;
|
18 | 19 | use PHPUnit\TextUI\Configuration\Configuration;
|
19 | 20 | use PHPUnit\TextUI\Output\Printer;
|
| 21 | +use PHPUnit\Util\Filesystem; |
20 | 22 | use SebastianBergmann\CodeCoverage\Driver\Driver;
|
21 | 23 | use SebastianBergmann\CodeCoverage\Driver\Selector;
|
22 | 24 | use SebastianBergmann\CodeCoverage\Exception as CodeCoverageException;
|
@@ -80,7 +82,17 @@ public function init(Configuration $configuration, CodeCoverageFilterRegistry $c
|
80 | 82 | }
|
81 | 83 |
|
82 | 84 | if ($configuration->hasCoverageCacheDirectory()) {
|
83 |
| - $this->codeCoverage()->cacheStaticAnalysis($configuration->coverageCacheDirectory()); |
| 85 | + $coverageCacheDirectory = $configuration->coverageCacheDirectory(); |
| 86 | + } else { |
| 87 | + $candidate = sys_get_temp_dir() . '/phpunit-code-coverage-cache'; |
| 88 | + |
| 89 | + if (Filesystem::createDirectory($candidate)) { |
| 90 | + $coverageCacheDirectory = $candidate; |
| 91 | + } |
| 92 | + } |
| 93 | + |
| 94 | + if (isset($coverageCacheDirectory)) { |
| 95 | + $this->codeCoverage()->cacheStaticAnalysis($coverageCacheDirectory); |
84 | 96 | }
|
85 | 97 |
|
86 | 98 | $this->codeCoverage()->excludeSubclassesOfThisClassFromUnintentionallyCoveredCodeCheck(Comparator::class);
|
@@ -121,11 +133,11 @@ public function init(Configuration $configuration, CodeCoverageFilterRegistry $c
|
121 | 133 | $this->deactivate();
|
122 | 134 | }
|
123 | 135 |
|
124 |
| - if ($configuration->hasCoverageCacheDirectory() && $configuration->includeUncoveredFiles()) { |
| 136 | + if (isset($coverageCacheDirectory) && $configuration->includeUncoveredFiles()) { |
125 | 137 | EventFacade::emitter()->testRunnerStartedStaticAnalysisForCodeCoverage();
|
126 | 138 |
|
127 | 139 | $statistics = (new CacheWarmer)->warmCache(
|
128 |
| - $configuration->coverageCacheDirectory(), |
| 140 | + $coverageCacheDirectory, |
129 | 141 | !$configuration->disableCodeCoverageIgnore(),
|
130 | 142 | $configuration->ignoreDeprecatedCodeUnitsFromCodeCoverage(),
|
131 | 143 | $codeCoverageFilterRegistry->get(),
|
|
0 commit comments