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.

Prueba en múltiples plataformas con pytest-cpp

Estoy probando un proyecto que tiene partes de Python y C++.
Ambas partes tienen pruebas unitarias, utilizando pytest en el lado de Python y Catch2 en el lado de C++, además hay pruebas de integración que se supone que comprueban la colaboración entre las partes.
Recientemente descubrí pytest-cpp y funciona muy bien para crear una ejecución de “prueba todo” con ambos conjuntos de pruebas unitarias.
Las pruebas de integración también están escritas en pytest.
Tengo varios binarios de prueba en el lado de C++ y accesorios de prueba para compilar, ejecutar e interactuar con ellos desde Python.

Dado que el código C++ debe funcionar en varias plataformas, estoy planeando parametrizar los accesorios para las pruebas de integración con un nombre de plataforma y un método de emulación, lo que permite compilar los binarios, por ejemplo, para ARM64 y ejecutarlos a través de qemu-aarch64.

Mi pregunta es: ¿Existe alguna manera de secuestrar el descubrimiento de pruebas realizado por pytest-cpp y obligarlo a mirar trayectorias específicas (con envolturas de emulación) proporcionadas por mi accesorio, de modo que también pueda ejecutar las pruebas unitarias de C++ de esta manera?

He examinado la parte de descubrimiento de pruebas de pytest-cpp y supongo que podría volver a implementar esta función en mi propio código, pero no veo ninguna manera de parametrizar pytest collect file con un accesorio …

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en fijaciones de pytest, es posible tomar el control del descubrimiento de pruebas realizado por pytest-cpp y obligarlo a buscar en rutas específicas proporcionadas por su fijación para ejecutar las pruebas unitarias de C++. Sin embargo, requeriría volver a implementar la función de descubrimiento de pruebas de pytest-cpp en su propio código.

    Para parametrizar pytest_collect_file mediante una fijación, puede utilizar el gancho pytest_generate_tests para generar múltiples funciones de prueba a partir de los valores de la fijación. Además, puede utilizar el módulo subprocess para ejecutar las pruebas unitarias de C++ desde dentro de sus fijaciones de pytest.

    En general, con una implementación personalizada, es posible integrar tanto las pruebas de pytest como las de Catch2 y ejecutarlas todas utilizando pytest-cpp y fijaciones de pytest.

Comments are closed.