Pytest-cov is extremely slow with xdist too

Abierto
#669 2 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
30/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
docker, python

Línea de trabajo

Start by reviewing the pytest-cov and coverage documentation linked in the issue, then reproduce the timing comparison inside the Docker container with and without pytest-xdist coverage enabled. Check whether the available CTracer is being used and record the relevant configuration and runtime details. Done means identifying the source of the slowdown and establishing a concrete performance improvement or limitation.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

upstream

Please go over all the sections and search
https://pytest-cov.readthedocs.io/en/latest/ or
https://coverage.readthedocs.io/en/latest/
before opening the issue.

Summary

When I run our tests with pytest-xdist, our entire tests about 1035 of them gets done in less than 35min
However, when we use pytest-cov it takes upto 1hr:15min which is tremondous.

I understand this is also due to the fact that the code instrumentation process of tracking the code takes some amount of time but this feels pretty exorbitant.

I also tried to install the python3-dev package but this does not seem to help as well

RUN apt-get update && \
    apt-get install -y python3-dev build-essential && \
    rm -rf /var/lib/apt/lists/*

With the above command, I see that it has made CTRACER available as well.

# python -c "import coverage; print(coverage.tracer.CTracer.__doc__)"
CTracer objects

We run our tests within the docker container.

Expected vs actual result

Pytest-cov should be able to complete the tests in and around the time when run without it

Lenguaje dominante
Python
Estrellas
2.1k
Forks
256
Merge medio
6 d 10 min
PR fusionados (30 d)
2

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 pytest-dev/pytest-cov

Todos los issues de pytest-dev/pytest-cov

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.