phpstan-src icon indicating copy to clipboard operation
phpstan-src copied to clipboard

Indicate file on TypeInferenceTestCase validation errors

Open staabm opened this issue 1 year ago • 2 comments

was just hunting down a bug in one of my PRs, but wasn't able to find the offending file, because the error message did not indicate which file the error related to

before this PR:

There was 1 error:

1) Error
The data provider specified for PHPStan\Analyser\NodeScopeResolverTest::testFileAsserts is invalid.
PHPUnit\Framework\AssertionFailedError: Expected type must be a literal string, string given on line 78.
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:166
/Users/staabm/workspace/phpstan-src/src/Node/ClassStatementsGatherer.php:128
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:650
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:759
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:3938
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:2124
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:758
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:339
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:649
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:339
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:835
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:339
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:803
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:296
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:92
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:145
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:271
/Users/staabm/workspace/phpstan-src/tests/PHPStan/Analyser/NodeScopeResolverTest.php:17

after this PR:

1) Error
The data provider specified for PHPStan\Analyser\NodeScopeResolverTest::testFileAsserts is invalid.
PHPUnit\Framework\AssertionFailedError: Expected type must be a literal string, string given in tests/PHPStan/Analyser/nsrt/param-closure-this.php on line 78.
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:166
/Users/staabm/workspace/phpstan-src/src/Node/ClassStatementsGatherer.php:128
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:650
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:759
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:3938
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:2124
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:758
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:339
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:649
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:339
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:835
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:339
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:803
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:296
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:92
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:145
/Users/staabm/workspace/phpstan-src/src/Testing/TypeInferenceTestCase.php:273
/Users/staabm/workspace/phpstan-src/tests/PHPStan/Analyser/NodeScopeResolverTest.php:17

note the added filename in the error message

staabm avatar Jun 19 '24 07:06 staabm

This pull request has been marked as ready for review.

phpstan-bot avatar Jun 19 '24 08:06 phpstan-bot

I will finalize this PR when back at my windows laptop next week

staabm avatar Jun 19 '24 09:06 staabm

This pull request has been marked as ready for review.

phpstan-bot avatar Jul 09 '24 14:07 phpstan-bot

Thank you.

As a next step we could stop using SimpleRelativePathHelper in more places in tests and start using SystemAgnosticSimpleRelativePathHelper instead. It could find more issues like it did here in PathConstantsTest.

ondrejmirtes avatar Jul 11 '24 11:07 ondrejmirtes