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.

¿Cómo recolectar la cobertura de código de Rust al ejecutar pruebas remotas?

Encontré un par de herramientas que generan informes de cobertura de código (como grcov, tarpaulin, llvm-cov y kcov) para el código Rust al ejecutar pruebas unitarias o cuando se activa mediante cargo.

Pero en nuestro caso, tenemos pruebas remotas en python que interactúan con el servidor remoto escrito en Rust. ¿Cómo puedo instrumentar y recopilar informes de cobertura en este caso?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Hay algunas formas posibles de recopilar informes de cobertura de código para pruebas remotas en un servidor Rust:

    1. Utilizar una herramienta de cobertura de código que se ejecute fuera del entorno Rust: Una opción es utilizar una herramienta de cobertura de código que no dependa de Rust y pueda capturar datos de procesos externos. Por ejemplo, podrías usar una herramienta como cov-core para recopilar datos de cobertura al ejecutar pruebas de Python contra tu servidor Rust. Tendrías que configurar manualmente la medición y el informe de cobertura, pero debería ser posible hacerlo con una configuración cuidadosa.

    2. Modificar el código Rust para admitir la instrumentación de cobertura: Otra opción es modificar el código Rust para habilitar la recopilación de cobertura durante las pruebas remotas. Esto podría implicar agregar instrumentación al código en sí (por ejemplo, utilizando gcov o llvm-cov), lo que requeriría algunos cambios en tu código Rust. Alternativamente, podrías usar una herramienta como cargo-instrument para generar automáticamente mediciones de cobertura de código durante el proceso de compilación. Una vez que el código Rust esté instrumentado, podrías ejecutar pruebas de Python contra el código instrumentado y recopilar los datos de cobertura resultantes.

    3. Utilizar una combinación de ambos enfoques: También podrías combinar las dos estrategias anteriores para obtener lo mejor de ambos mundos. Por ejemplo, podrías modificar el código Rust para admitir la instrumentación de cobertura durante las pruebas remotas, pero también utilizar una herramienta externa como cov-core para capturar cualquier cobertura adicional que se haya omitido por la instrumentación de Rust. Esto podría proporcionar datos de cobertura más completos en general.

Comments are closed.