Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

pytest-rerunfailures 16.6.1 duplicates JUnit records and inflates scores

Abierto
#64 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
testing

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
  1. Install pytest-rerunfailures==16.6.1.
  2. Run an always-failing test with pytest --reruns=2 --junitxml=results.xml.
  3. 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

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de facebookresearch/ProgramBench

Todos los issues de facebookresearch/ProgramBench

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.