Pruebas unitarias de Python con CMake

Guía para ejecutar pruebas unitarias en Python y C++ con CMake y ctest en un único build. Configura entornos virtuales por app, descubre tests con unittest y ejecuta pruebas unificadas en CI.

31 ago 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Bienvenido al siguiente pikoTutorial sobre Running Python unit tests with CMake, donde verás cómo ejecutar pruebas unitarias de Python y combinarlas con pruebas de C++ usando un solo comando con CMake y ctest.

Partiremos de una configuración de proyecto con varias aplicaciones. Imagina una carpeta project con app1 y app2 escritas en Python, cada una con su CMakeLists.txt, main.py y requirements.txt, además de una app3 en C++ con su CMakeLists.txt y main.cpp, más un directorio build y el CMakeLists.txt principal en la raíz.

Para habilitar pruebas en Python, amplía la estructura añadiendo en app1 y app2 un directorio test que contenga archivos como test_app.py. La idea es que cada app de Python disponga de su entorno virtual, dependencias instaladas y una carpeta con tests detectables por unittest.

Añadiendo objetivos de prueba: en app1, edita app1/CMakeLists.txt para 1) fijar la ruta del entorno virtual con una variable como APP1_VENV en CMAKE_BINARY_DIR/app1_venv, 2) crear el entorno virtual e instalar requirements mediante una macro o función tipo create_venv, 3) definir un objetivo para ejecutar la aplicación con add_custom_target run_app1 y 4) registrar las pruebas unitarias con add_test, llamando a python -m unittest discover sobre la carpeta app1/test. Repite lo mismo en app2. No olvides activar el subsistema de pruebas con enable_testing() en el CMakeLists.txt de la raíz.

Con esto, basta con ejecutar ctest en la carpeta de build para que se descubran y ejecuten los tests de app1 y app2. Verás algo como Start 1: app1_unit_test y Start 2: app2_unit_test con su estado Passed si todo va bien.

Mezclando pruebas entre lenguajes: además de Python, puedes probar también C++. En app3 añade un directorio test con un archivo test_app.cpp. En app3/CMakeLists.txt crea el ejecutable principal con add_executable main, añade un objetivo run_app3 para ejecutar la app y define un ejecutable de pruebas como add_executable app3_unit_test test/test_app.cpp. Finalmente, registra el test con add_test NAME app3_unit_test COMMAND app3_unit_test. Ahora, un único ctest lanzará las pruebas de Python y C++ de forma unificada.

Recomendaciones prácticas: 1) estructura tus pruebas de Python con nombres tipo test_*.py para que unittest discover las detecte automáticamente; 2) usa entornos virtuales por app para aislar dependencias; 3) en CI puedes añadir ctest -V para salida detallada y ctest -R nombre_parcial para filtrar pruebas; 4) aprovecha etiquetas en CTest para agrupar pruebas de Python y C++ si necesitas ejecuciones selectivas.

En Q2BSTUDIO impulsamos la calidad del software con pipelines de integración continua, pruebas automatizadas y un enfoque sólido de ingeniería. Somos una empresa de desarrollo de software y aplicaciones a medida, expertos en software a medida, inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, servicios de inteligencia de negocio con Power BI, automatización de procesos, agentes IA e IA para empresas. Si buscas una base técnica robusta para tus productos, descubre cómo abordamos proyectos de aplicaciones a medida con CMake, pruebas y despliegues modernos, o consulta nuestras soluciones de inteligencia artificial para potenciar tu producto con modelos, agentes y analítica avanzada.

Palabras clave de referencia: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat