Report setUp()/tearDown() overrides that don't call the parent
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 25/100
Research direction
Read the issue's example and the linked ShouldCallParentMethodsRule in phpstan-phpunit, then locate the plugin's afterClassLikeAnalysis handlers and their tests. Add coverage for the four lifecycle methods, including overrides of non-TestCase declarations and missing top-level parent calls. Done means the plugin reports the missing call and its tests cover the stated cases; an open pull request is already linked.
Written by the indexing model from the issue text.
Description
When a test case extends a base test case that has its own setUp()/tearDown(), forgetting parent::setUp() silently skips the base fixture:
abstract class DatabaseTestCase extends TestCase
{
protected function setUp(): void { $this->connection = Connection::open(); }
}
final class InvoiceRepositoryTest extends DatabaseTestCase
{
protected function setUp(): void
{
$this->repository = new InvoiceRepository($this->connection); // parent::setUp() missing
}
}
phpstan-phpunit reports this (ShouldCallParentMethodsRule). The rule only applies when the overridden method is not TestCase's own empty one.
Idea: in afterClassLikeAnalysis, for setUp, tearDown, setUpBeforeClass and tearDownAfterClass overriding a non-TestCase declaration, look for a top-level parent::<method>() call and emit a plugin issue otherwise. Roughly 60 lines with tests.
Idea borrowed from phpstan/phpstan-phpunit.
- Dominant language
- Gherkin
- Stars
- 79
- Forks
- 38
- Avg merge
- 6h 52m
- Merged PRs (30d)
- 28
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from psalm/psalm-plugin-phpunit
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
psalm/psalm-plugin-phpunit#222 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
psalm/psalm-plugin-phpunit#220 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
psalm/psalm-plugin-phpunit#219 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
psalm/psalm-plugin-phpunit#216 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 3/5 1-2 days Newbie friendliness 57/100
psalm/psalm-plugin-phpunit#223 ·
Maintainers usually reply within 1 day
All issues in psalm/psalm-plugin-phpunit
Similar issues
-
e2e-failure ready-to-code
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
redhat-developer/rhdh-plugin-export-overlays#4733 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
melodic-software/claude-code-plugins#14993 · 2 comments ·
Maintainers usually reply within 1 day
-
quality-assurance
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Paul-Austin-Oswego-CSC480-HCI521/gift-app#228 ·
Maintainers usually reply within 1 day
-
tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
teradata-labs/loom#624 ·
Maintainers usually reply within 1 day