What Happened
Pest reporting about execution time in TIA mode when many files are changed, but none actually should invoke real test iteration just a replay- do not match actual real execution time (say reported by time command). Action goes on Windows.
How to Reproduce
- On Windows OS, change 100 test files slightly with no actual influential changes (like add spaces, comments etc).
- Run pest --parallel --tia
- Observe 20x-50x times execution penalty, i.e. What Pest reports in "Duration" column and how much Pest process execution actually took (reported with time utility or by other means)
Expected results:
Real execution time should match the one Pest reports. So there's a probable execution overhead on windows when many files are changed, but very tiny amount of them (or none at all) actually leads to a test execution, i,.e. TIA replays most of results.
Sample Repository
No response
Pest Version
5.1.1
PHP Version
8.4.19
Operation System
Windows
Notes
Suggested resolution. I am suspecting that most overhead in windows comes from making many calls to "git show" or similar git commands which fetches actual changes file-by-file. If so, scanning could be done by streaming changes of many objects in one go with git cat-file --batch or similar.
What Happened
Pest reporting about execution time in TIA mode when many files are changed, but none actually should invoke real test iteration just a replay- do not match actual real execution time (say reported by time command). Action goes on Windows.
How to Reproduce
Expected results:
Real execution time should match the one Pest reports. So there's a probable execution overhead on windows when many files are changed, but very tiny amount of them (or none at all) actually leads to a test execution, i,.e. TIA replays most of results.
Sample Repository
No response
Pest Version
5.1.1
PHP Version
8.4.19
Operation System
Windows
Notes
Suggested resolution. I am suspecting that most overhead in windows comes from making many calls to "git show" or similar git commands which fetches actual changes file-by-file. If so, scanning could be done by streaming changes of many objects in one go with
git cat-file --batchor similar.