pytest-rerunfailures 16.6.1 duplicates JUnit records and inflates scores
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
Línea de trabajo
Comienza en parse_test_results y reproduce el problema con pytest-rerunfailures==16.6.1, --reruns=2 y la prueba que siempre falla descrita aquí. Verifica que los registros JUnit duplicados se agrupen por prueba lógica y se puntúen usando el intento final, que las métricas de selección de reintentos cuenten las pruebas lógicas y que la versión instalada del plugin de reejecución sea reproducible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
The evaluator installs pytest-rerunfailures without a version constraint. Version 16.6.1 changed its JUnit reporting behavior so that every rerun attempt produces a <testcase> record.
For a test that still fails after two reruns, the XML contains two empty records followed by one failure record for the same classname and name:
<testcase classname="test_rerun" name="test_always_fails" />
<testcase classname="test_rerun" name="test_always_fails" />
<testcase classname="test_rerun" name="test_always_fails">
<failure message="assert False">AssertionError</failure>
</testcase>
parse_test_results currently processes each record independently and treats a record without a result child as passed. The single failing logical test is therefore scored as two passes and one failure, producing a score of 2/3 instead of 0/1.
Reproduction
- Install
pytest-rerunfailures==16.6.1. - Run an always-failing test with
pytest --reruns=2 --junitxml=results.xml. - Pass the resulting XML to
parse_test_results.
With 16.6, the XML contains only the final failure record. With 16.6.1, it contains the three records shown above.
Expected behavior
Each logical test should contribute exactly once to the score, using the final attempt's status. Retry-selection metrics should also count logical tests rather than raw JUnit records. The installed rerun plugin version should be reproducible.
A fix is available in #63.
- Lenguaje dominante
- Python
- Estrellas
- 938
- Forks
- 68
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 facebookresearch/ProgramBench
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 58/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
facebookresearch/ProgramBench#50 · 1 comentario ·
Todos los issues de facebookresearch/ProgramBench
Issues similares
-
Broken links found in docsAbiertodocs pydanty:is-working
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
pydantic/pydantic-ai#9800 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
[Bug]: With --api-server-count > 1, gauges such as vllm:num_requests_running have no samples until the first requestPosiblemente ocupada @roy6n23 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
vllm-project/vllm#59988 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
pymc-devs/pymc-examples#897 ·
-
Action calls retired claude-3-5-haiku-20241022, generating failing API requests for every userAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100