Report setUp()/tearDown() overrides that don't call the parent
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #215 de @alies-dev — fusionado
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Gherkin
- Estrellas
- 79
- Forks
- 38
- Merge medio
- 3 h 54 min
- PR fusionados (30 d)
- 68
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de psalm/psalm-plugin-phpunit
-
InvalidArgument for `new ArrayIterator(...)` datasets passed to invariant generic parametersAbiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
psalm/psalm-plugin-phpunit#274 ·
Los mantenedores suelen responder en 1 día
Todos los issues de psalm/psalm-plugin-phpunit
Issues similares
-
discuss during sync
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
ci javascript tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jonathanong/no-mistakes#3258 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
nikic/PHP-Parser#1186 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
wultra/powerauth-tests#980 ·