es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Tiene sentido ejecutar cobertura de código en diferentes versiones de lenguaje?

En un proyecto en el que estoy involucrado, nuestro proceso se diseñó para ejecutar Coveralls en paralelo en varias versiones diferentes de Python:

Github Action yaml

matrix:
include:
- python-version: 2.7
tox-env: py27
- python-version: 3.6
tox-env: py36
- python-version: 3.7
tox-env: py37,docs,readme,black
- python-version: 3.8
tox-env: py38
- python-version: 3.9
tox-env: py39
- python-version: pypy3
tox-env: pypy3
...
- name: Convertir formato de cobertura a lcov
if: ${{ matrix.python-version != '2.7' }}
run: |
coverage-lcov --output_file_path lcov.info

Puedo entender por qué se ejecutarían pruebas unitarias y funcionales en varias versiones de la tecnología asociada, sin embargo, en cuanto a la cobertura de código, no puedo encontrar una buena razón para seguir ejecutando diferentes versiones de Python. Me doy cuenta de que al ejecutar esto en múltiples versiones no revela nada útil, aparte de lo que parecen ser pequeñas diferencias en los cálculos de líneas relevantes que causan fallas sin sentido en el proceso.

Al ejecutar Coverallsapp (acciones de Github) en la versión 3.8 y superior, los cálculos retornan más líneas “relevantes” que el mismo código en la versión 3.7 y anterior. Esto, creo, está causando un fallo en el proceso debido a un informe de disminución de la cobertura de código de -0.0%, que después de revisar los informes reales en detalle es un resultado sin sentido.

Descripción de la imagen

Solo quería plantear esta pregunta para determinar si hay algún beneficio real en ejecutar la cobertura de código en tantas versiones de Python.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Python, integración continua, cobertura de código, acciones de GitHub y Coveralls, creo que en ciertos casos no es necesario ejecutar la cobertura de código en varias versiones de Python. Si bien puede ser útil ejecutar pruebas unitarias y funcionales en diferentes versiones de Python para garantizar la compatibilidad, realizar pruebas de cobertura de código en múltiples versiones puede no revelar beneficios significativos, especialmente si esto resulta en fallas sin sentido en el pipeline debido a pequeñas diferencias en los cálculos de líneas relevantes.

    En el ejemplo proporcionado, el pipeline del proyecto está diseñado para ejecutar Coveralls en paralelo en varias versiones de Python utilizando el archivo yaml de GitHub Actions. Sin embargo, el experto en IT resalta que al ejecutar Coveralls (acciones de GitHub) en las versiones 3.8 y superiores, los cálculos devuelven más líneas “relevantes” en comparación con el mismo código en las versiones 3.7 y anteriores. Esto puede causar una falla en el pipeline debido a un informe de disminución en la cobertura de código, lo cual puede no ser un resultado significativo después de revisar los informes detalladamente.

    Por lo tanto, es importante evaluar si ejecutar pruebas de cobertura de código en múltiples versiones de Python es necesario y beneficioso para un proyecto en particular. Si no proporciona información útil y resulta en fallas sin sentido en el pipeline, puede valer la pena reconsiderar el diseño del pipeline y realizar ajustes en consecuencia.

Comments are closed.