• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

334
Vistas
CMake y CTest: ejecuta automáticamente las dependencias de la prueba

En mi CMakeLists.txt tengo algo como esto:

 set_property(TEST testX APPEND PROPERTY DEPENDS testY) set_property(TEST testX APPEND PROPERTY DEPENDS testZ)

Y quiero alguna forma de ejecutar testX y todas sus dependencias automáticamente. Algo como:

 ctest <options> testX

y como resultado, CTest ejecutará textY , testZ y testX . ¿Hay alguna manera de hacer esto?

O, si es imposible ahora, ¿hay alguna forma de extraer información sobre las dependencias del directorio de compilación de CMake mediante un script?

about 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Hasta donde yo sé, no hay una forma integrada de hacer esto.

La mejor manera que se me ocurre para lograr su objetivo es utilizar la propiedad LABELS en las pruebas. Puede recuperar la lista de dependencias usando get_property o get_test_property y aplicar la misma etiqueta a testX y cada una de sus pruebas dependientes:

 get_test_property(testX DEPENDS DependenciesOfTestX) set_tests_properties(testX ${DependenciesOfTestX} PROPERTIES LABELS LabelX)

Luego puede decirle a CTest que solo ejecute pruebas con esa etiqueta:

 ctest -L LabelX
about 3 years ago · Santiago Trujillo Denunciar

0

Se agregó soporte para accesorios de prueba en CMake 3.7 y hacen exactamente lo que usted quiere. Su escenario particular se implementaría así:

 set_property(TEST testX PROPERTY FIXTURES_REQUIRED Foo) set_property(TEST testY PROPERTY FIXTURES_SETUP Foo) set_property(TEST testZ PROPERTY FIXTURES_SETUP Foo)

Luego puede pedirle a ctest que ejecute solo testX y automáticamente agregará testY y testZ al conjunto de pruebas que se ejecutarán:

 ctest -R testX

También garantizará que testX solo se ejecute después de que se hayan aprobado testY y testZ . Si falla testY o testZ , se testX . También se agregaron nuevas opciones -FS , -FC y -FA a ctest en CMake 3.9, que permiten controlar la adición automática de pruebas de configuración/limpieza de dispositivos en la línea de comandos de ctest . Por ejemplo, para omitir temporalmente la adición de testY al conjunto de prueba pero aún agregar automáticamente testZ , se podría hacer esto:

 ctest -R testX -FS testY

Las propiedades de los accesorios se describen en los documentos de CMake y el siguiente artículo cubre la función de accesorios de manera más completa:

https://crascit.com/2016/10/18/test-fixtures-with-cmake-ctest/

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda