Fingerprint::compute() hashes hardcoded paths:
// src/Plugins/Tia/Fingerprint.php:36-37
'phpunit_xml' => self::trackedHash($projectRoot, 'phpunit.xml'),
'phpunit_xml_dist' => self::trackedHash($projectRoot, 'phpunit.xml.dist'),
Nothing consults the -c / --configuration path in use. configuration, argv, PHPUNIT_ and getopt each appear 0 times in that file.
Effect: pest --tia and pest --tia -c alternate.xml share one graph, although the two configs can declare different testsuites, different excluded groups, different bootstrap and different source roots. Switching config does not invalidate the graph.
Second gap, same helper: trackedHash() returns null for anything not tracked by git (:255-262, isTrackedByGit() at :264), so an untracked local phpunit.xml gets no fingerprint coverage at all.
Fix: hash the resolved active config path, and hash it whether or not it is tracked.
v5.1.0.
Related, same root cause — the fingerprint's input set being incomplete: #1856 (git HEAD not covered) and #1857 (php_minor holds the major version). Three independent gaps found in one sitting, which may argue for widening the input set rather than patching the fields.
Fingerprint::compute()hashes hardcoded paths:Nothing consults the
-c/--configurationpath in use.configuration,argv,PHPUNIT_andgetopteach appear 0 times in that file.Effect:
pest --tiaandpest --tia -c alternate.xmlshare one graph, although the two configs can declare different testsuites, different excluded groups, different bootstrap and different source roots. Switching config does not invalidate the graph.Second gap, same helper:
trackedHash()returnsnullfor anything not tracked by git (:255-262,isTrackedByGit()at:264), so an untracked localphpunit.xmlgets no fingerprint coverage at all.Fix: hash the resolved active config path, and hash it whether or not it is tracked.
v5.1.0.
Related, same root cause — the fingerprint's input set being incomplete: #1856 (git HEAD not covered) and #1857 (
php_minorholds the major version). Three independent gaps found in one sitting, which may argue for widening the input set rather than patching the fields.